Python爬虫 | 爬取全书网小说斗罗大陆

网络爬虫:可以理解成网页蜘蛛,在网页上采集数据

爬取流程:

1、导入模块

2、打开网页,获取原码

3、获取章节原码

4、获取正文

5、过滤‘杂质’

6、保存下载 


废话不多说开始爬!!!

今天爬的网站是  全书网—斗罗大陆 

Python爬虫 | 爬取全书网小说斗罗大陆_第1张图片

 

准备工作、首先我们先导入两个模块

import urllib.request    #打开和浏览url中内容 
import re                #匹配我们需要的内容

第一步、打开网站,获得源代码

import urllib.request
import re
def run():
    html = urllib.request.urlopen("http://www.quanshuwang.com/book/1/1379").read()  #打开网站链接,并储存下来
    html = html.decode('gbk')   #将 字节 --->>> str
    print(html)
run()

运行结果就是获取到了网页的源代码,由于太长了,挑重点的往上复制 ,可以看出网页源代码存在我们想要的信息,每篇文章的网页链接,我们想要获取到,就需要用到re正则表达式了。

(-----------------------此处省略了一堆--------------------------)

  • 引子 穿越的

  • 第一章 ,异界唐三 一

  • 第一章 ,异界唐三 二

  • 第一章 ,异界唐三 三

  • 第一章 ,异界唐三 四

  • 第二章 废武魂与先天满魂力 一

  • 第二章 废武魂与先天满魂力 二

  • (-----------------------此处省略了一堆--------------------------)

    第二步、获取章节源代码 

    import urllib.request
    import re
    def run():
        html = urllib.request.urlopen("http://www.quanshuwang.com/book/1/1379").read()  #打开网站链接,并储存下来
        html = html.decode('gbk')   #将 字节 --->>> str
        get_url =re.compile(r'
  • (.*?)
  • ') #设置匹配的条件 get_html_url =re.findall(get_url,html) #开始匹配 print(get_html_url) #输出一下看看 run()

     运行结果就是我们获得了一个列表,列表里有包含章节url和文章标题的元组,然后我们就可以通过遍历获取每个章节的url然后再进行和第一步一样的事情,获取章节所在页面的原码。

    D:\alien_invasion\venv\Scripts\python.exe D:/alien_invasion/venv/斗罗大陆_爬虫/get_斗罗大陆.py
    [('http://www.quanshuwang.com/book/1/1379/7392650.html', '引子 穿越的'), ('http://www.quanshuwang.com/book/1/1379/7392651.html', '第一章 ,异界唐三 一'), ('http://www.quanshuwang.com/book/1/1379/7392652.html', '第一章 ,异界唐三 二'), ('http://www.quanshuwang.com/book/1/1379/7392653.html', '第一章 ,异界唐三 三'),

    (-----------------------此处省略了一堆--------------------------)

    ('http://www.quanshuwang.com/book/1/1379/7393365.html', '第二百三十五章 完美融合之双神战双神'), ('http://www.quanshuwang.com/book/1/1379/7393366.html', '第二百三十六章 大结局,最后一个条件')]

     通过遍历列表,利用索引  url[0]  方式,获取网页链接

    import urllib.request
    import re
    def run():
        html = urllib.request.urlopen("http://www.quanshuwang.com/book/1/1379").read()  #打开网站链接,并储存下来
        html = html.decode('gbk')   #将 字节 --->>> str
        get_url =re.compile(r'
  • (.*?)
  • ') #设置匹配规则 get_html_urls =re.findall(get_url,html) #匹配 for url in get_html_urls: #遍历每个url content_h = urllib.request.urlopen(url[0]).read() #根据每个url获取页面原码 content_html = content_h.decode('gbk') print(content_html) run()

    结果没问题,不信你自己搞下

    4.获取正文 

    利用re正则获取正文

    import urllib.request
    import re
    def run():
        html = urllib.request.urlopen("http://www.quanshuwang.com/book/1/1379").read()  #打开网站链接,并储存下来
        html = html.decode('gbk')   #将 字节 --->>> str
        get_url =re.compile(r'
  • (.*?)
  • ') #设置匹配规则 get_html_urls =re.findall(get_url,html) #匹配 for url in get_html_urls: #遍历每个url content_h = urllib.request.urlopen(url[0]).read() #根据每个url获取页面原码 content_html = content_h.decode('gbk') reg = re.compile(r'    (.*?)    (.*?)    (.*?)

    你可能感兴趣的:(python,爬虫,python,爬取)