python爬取整个网站的广告敏感词_Python爬取整个网站

本文介绍了如何使用Python爬取整个网站数据,重点讨论了查询字符串在URL中的作用,以及如何通过分析网页链接规律来遍历多页内容。此外,还详细阐述了反爬虫策略,包括判别身份(修改user-agent)和IP限制(使用代理IP),以及遵守robots.txt协议的重要性。通过实例展示了如何编写爬虫代码,以爬取豆瓣图书Top250的数据。
摘要由CSDN通过智能技术生成

爬取整个网站

为了爬取整个网站,我们得先分析该网站的数据是如何加载的。

还是以豆瓣读书为例,当我们点击第二页后,观察浏览器的地址栏,发现网址变了。网址变成了 https://book.douban.com/top250?start=25,和原来相比后面多了一个 ?start=25。

这部分被称为查询字符串,查询字符串作为用于搜索的参数或处理的数据传送给服务器处理,格式是 ?key1=value1&key2=value2。

? 前面是网页的地址,后面是查询字符串。以键值对 key=value 的形式赋值,多个键值对之间用 & 连接在一起。例如 ?a=1&b=2 表示:a 的值为 1,b 的值为 2。

查询字符串用于信息的传递,服务器通过它就能知道你想要什么,从而给你返回对应的内容。比如你在知乎搜索 python,网址会变成 https://www.zhihu.com/search?type=content&q=python,后面的查询字符串告诉服务器你想要的是有关 python 的内容,于是服务器便将有关 python 的内容返回给你了。

了解了查询字符串的相关知识后,接下来我们多翻几页豆瓣读书的页面,观察一下网址的变化规律:

网页规律.png

第二页 start=25,第三页 start=50,第十页 start=225,而每页的书籍数量是 25。

因为每页展示 25 本书,根据规律其实不难推测出 start 参数表示从第几本书开始展示,所以第一页 start 是 0,第二页 start 是 25,第三页 start 是 50,第十页 start 是 225。因此 start 的计算公式为 start = 25 * (页码数 - 1)(25 为每页展示的数量)。我们来通过代码自动生成豆瓣图书 Top250 所有数据(10 页)的地址:

url = 'https://book.douban.com/top250?start={}'

# num 从 0 开始因此不用再 -1

urls = [url.format(num * 25) for num in range(10)]

print(urls)

# 输出:

# [

# 'https://book.douban.com/top250?start=0',

# 'https://book.douban.com/top250?start=25',

# 'https://book.douban.com/top250?start=50',

# 'https://book.douban.com/top250?start=75',

# 'https://book.douban.com/top250?start=100',

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值