Python爬虫实战
2019-01-02 本文已影响0人
kaiiiu
爬取小说网站上的小说并下载到本地
- 导入库
from urllib import request
import re
request:用来请求网页
re:导入正则表达式
- 确定需要爬取的小说网址
url="http://www.6mao.com/html/1/1052/736343.html"
- 获得该页面的全部内容
webpage=request.urlopen(url)
data=webpage.read().decode("gbk")
webpage:存放请求网页的变量
decode方法:将二进制的网页字符解码,格式为“gbk”
- 数据清洗
data=data.replace(' ',"")
data=data.replace('<br />',"")
使用
replace
方法将data中的 和</br>去除
- 观察data中的数据,可以发现小说内容被包含在一个<div id="neirong"></div>标签中。
txt=re.findall(r'<div id="neirong">(.*?)</div>',data,re.S)
使用正则表达式
<div id="neirong">(.*?)</div>
获取<div id="neirong"></div>中的全部内容,并保存在变量txt中。
- 至此,小说内容已经处理好,将小说内容写出。
of=open("book.txt","w")
for t in txt:
of.write(t)
of.close()
使用
open
方法创建一个book的txt文件,用for循环将txt的内容写入,最后用close
方法关闭文件释放资源。
- 完成代码:
from urllib import request
import re
url="http://www.6mao.com/html/1/1052/736343.html"
webpage=request.urlopen(url)
data=webpage.read().decode("gbk")
data=data.replace(' ',"")
data=data.replace('<br />',"")
txt=re.findall(r'<div id="neirong">(.*?)</div>',data,re.S)
of=open("book.txt","w")
for t in txt:
of.write(t)
of.close()