python爬虫(一)——指定小说的爬取详解

近来比较清闲,想学习一些东西,刚好最近正在入我师兄的坑,于是想自己写一个python爬虫下载这本小说,方便自己的后续阅读。

一、爬虫的基本步骤

不管是多么复杂的爬虫,它的流程永远是分为以下几个部分:
一、发起请求
通过HTTP库向目标站点发起请求,也就是发送一Request,请求可以包含额外的header等信息,等待服务器响应;
二、获取响应内容
如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型;
三、解析内容
得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理;
四、保存数据
保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

二、爬虫的编写过程

由于是第一次编写爬虫,能力有限,所以自己只能设置为指定的网站地址:http://www.paoshu8.com/131_131325/
下载内容存放地址:D:\novel\

一、发起请求:

link = "http://www.paoshu8.com/131_131325/"
headers = {
   
    'Cookie': 'td_cookie = 405542359;width = 85 % 25;Hm_lpvt_9352f2494d8aed671d970e0551ae3758 = 1596682842;Hm_lvt_9352f2494d8aed671d970e0551ae3758 = 1596677570',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
}

aders可以在浏览器打开小说网站时,按F12进入开发者调试工具,然后点击network,选择一个目标网站的访问记录,点击之后会在屏幕左侧显示一个请求标头,其中就有上述代码中需要的请求。如果点击目标网站的访问记录没有需要的请求,可以再换一个目标网站的访问记录即可。

二、获取响应内容:

response = requests.get(link, headers=headers) ##获取响应内容
print(response.encoding)  ##查看网站的编码方式
response.encoding = 'utf-8' ##以UTF-8解码(有的网站是以gbk方式解码的)
html = response.text ##将获取到的内容编码成字符串
soup = BeautifulSoup(html, 'lxml') ##解析html文件
soup = str(soup)  ##将获取到的内容转换成字符类型,不然后面的正则表达式会出错

上述代码的功能就是将获取到的内容进行转换和处理,使之变成我们能够理解的形式。

三、解析内容和下载内容:

title = re.findall(r'<dt>.*?</dt>', soup)  ##正则表达式,将<dt>和</dt>之间内容过滤出来,这样就可以得到小说的名字
print(title)
title = title[1]  ##根据显示的内容选取小说的名字
title = title.replace('<dt>', '') ##清洗小说名
title = title.replace('</dt>', '')
title = title.replace('正文', '')
print(title)

上述代码的运行结果如

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值