1、导入模块
2、打开网页,获取原码
3、获取章节原码
4、获取正文
5、过滤‘杂质’
6、保存下载
废话不多说开始爬!!!
今天爬的网站是 全书网—斗罗大陆
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()
结果没问题,不信你自己搞下
利用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' (.*?) (.*?) (.*?)