【爬虫】使用urllib.request去爬取小说

import urllib.request
import re
#1获取主页源代码
#2获取章节超链接
#3获取章节内容
#4下载小说

#驼峰命名法
#注释 获取小说内容
def getNovelContent():
    #获取源代码 HTTP Response对象
    html = urllib.request.urlopen(‘http://www.quanshuwang.com/book/0/269/‘)
    html = html.read()
    #print(html)
    #设置编码
    html = html.decode(‘gbk‘)
    #获取超链接
    #<li><a href="http://www.quanshuwang.com/book/0/269/78850.html" title="第一章 山边小村,共2741字">第一章 山边小村</a></li>
    #正则表达式 通配符  .*? 匹配所有  (.*?)括号里面是需要的内容  分组匹配
    reg = r‘<li><a href="(.*?)" title=".*?">(.*?)</a></li>‘
    #目的是增加效率的,可以不写,但写更好
    reg = re.compile(reg)
    urls = re.findall(reg,html)
    #print(urls)

    for i in urls:
        #print(i[0])
        novel_url = i[0]
        novel_title = i[1]
        chapt = urllib.request.urlopen(novel_url).read()
        chapt_html = chapt.decode(‘gbk‘)
        # | ||d r‘ |d‘
        reg = ‘</script>&nbsp;&nbsp;&nbsp;&nbsp;(.*?)<script type="text/javascript">‘
        # S 多行匹配
        reg = re.compile(reg,re.S)
        chapt_content = re.findall(reg,chapt_html)
        #print(chapt_content[0])
        #把没用的替换掉,注意类型进行一次替换之后是列表,br是换行,nbsp是空格
        chapt_content = chapt_content[0].replace(‘<br />‘,"")
        #print(type(chapt_content))
        chapt_content = chapt_content.replace(‘&nbsp;&nbsp;&nbsp;&nbsp;‘,"")
        #从列表变成字符串了,下面不用加索引
        #print(chapt_content)

        #下载,可以加个提示
        print("正在保存%s"%novel_title)
        # w 读写模式  wb 二进制读写模式,一般用来读写照片和视频  没加具体路径则在py路径下自动新增,也可以保存为doc格式等
        f = open(‘{}.txt‘.format(novel_title),‘w‘)
        f.write(chapt_content)
        f.close

getNovelContent()

没有注释简约版代码:

import urllib.request
import re

def getNovelContent():

    html = urllib.request.urlopen(‘http://www.quanshuwang.com/book/0/269/‘)
    html = html.read()
    html = html.decode(‘gbk‘)
    reg = r‘<li><a href="(.*?)" title=".*?">(.*?)</a></li>‘
    reg = re.compile(reg)
    urls = re.findall(reg,html)

    for i in urls:
        novel_url = i[0]
        novel_title = i[1]
        chapt = urllib.request.urlopen(novel_url).read()
        chapt_html = chapt.decode(‘gbk‘)
        reg = ‘</script>&nbsp;&nbsp;&nbsp;&nbsp;(.*?)<script type="text/javascript">‘
        reg = re.compile(reg,re.S)
        chapt_content = re.findall(reg,chapt_html)
        chapt_content = chapt_content[0].replace(‘<br />‘,"")
        chapt_content = chapt_content.replace(‘&nbsp;&nbsp;&nbsp;&nbsp;‘,"")

        print("正在保存%s"%novel_title)
        f = open(‘{}.txt‘.format(novel_title),‘w‘)
        f.write(chapt_content)
        f.close

getNovelContent()

原文地址:https://www.cnblogs.com/LifeIsHardIUsePyhon/p/9074907.html

时间: 2024-12-08 01:28:14

【爬虫】使用urllib.request去爬取小说的相关文章

Python实战项目网络爬虫 之 爬取小说吧小说正文

本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 链接:http://tieba.baidu.com/p/4792877734 首先,自己定义一个类,方便使用.其实类就像一个"水果篮",这个"水果篮"里有很多的"水果",也就是我们类里面定义的变量啊,函数啊等等,各种各样的.每一种"水果&q

python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)

转载出处:药少敏   ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: 1 from bs4 import BeautifulSoup 2 import requests 3 4 if __name__ == '__main__': 5 html = requests.get('http://www.136book.com/huaqiangu/') 6 soup = BeautifulSoup(html.content, 'lxml'

Python爬虫:爬取小说并存储到数据库

爬取小说网站的小说,并保存到数据库 第一步:先获取小说内容 #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib2,re domain = 'http://www.quanshu.net' headers = {     "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom

Golang 简单爬虫实现,爬取小说

为什么要使用Go写爬虫呢? 对于我而言,这仅仅是练习Golang的一种方式. 所以,我没有使用爬虫框架,虽然其很高效. 为什么我要写这篇文章? 将我在写爬虫时找到资料做一个总结,希望对于想使用Golang写爬虫的你能有一些帮助. 爬虫主要需要解决两个问题: 获取网页 解析网页 如果这两个都无法解决的话就没法再讨论其他了. 开发一个爬取小说网站的爬虫会是一个不错的实践. 这是两个实例: Golang 简单爬虫实现 golang 用/x/net/html写的小爬虫,爬小说 这是需要的两个项目: go

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,

scrapy初探之实现爬取小说

一.前言 上文说明了scrapy框架的基础知识,本篇实现了爬取第九中文网的免费小说. 二.scrapy实例创建 1.创建项目 C:\Users\LENOVO\PycharmProjects\fullstack\book9>scrapy startproject book9 2.定义要爬取的字段(item.py) import scrapy class Book9Item(scrapy.Item): # define the fields for your item here like: # na

多线程爬取小说时如何保证章节的顺序

前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这种情况. 不仅仅是小说,一些其他的数据在多线程爬取时也有类似情况,比如: 漫画:漫画其实是由大量图片组成,一般一本漫画会保存为一个pdf文件,在此过程要保证图片的顺序. 视频:现在网络上的视频大部分是由多个ts文件拼合,最后保存为一个mp4文件,要保证ts文件的顺序. 它们都有一个共同的特点,那就是

小白学 Python 爬虫(25):爬取股票信息

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

爬虫学习 Python网络爬虫第三弹《爬取get请求的页面数据》

爬虫学习 Python网络爬虫第三弹<爬取get请求的页面数据> 一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib.parse,在Python2中是urllib和urllib2. 二.由易到难的爬虫程序: 1.爬取百度首页面所有数据值 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #导包 4