Python爬虫实战

爬取小说网站上的小说并下载到本地

  • 导入库
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中的&nbsp和</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('&nbsp;',"")
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()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容