Python爬虫 爬虫需要遵守的规则
Python爬虫
学习Python爬虫过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 爬虫需要遵守的规则 ——
文章目录
网络爬虫的尺寸
为了爬取网页的爬虫:小规模,数据量小,爬取速度不敏感。
建议使用Requests库。为了爬取网站或者系列网站的爬虫:中规模,数据量较大,爬取速度敏感;
建议使用Scrapy库为了爬取全网的爬虫:大规模,类似于搜索引擎,爬取速度关键;
只能进行定制开发
网络爬虫引发的问题
主要问题:骚扰问题、法律风险、隐私泄露。
网络爬虫的骚扰:受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销。
网络爬虫的法律风险:服务器上的数据有产权归属,网络爬虫获取数据后牟利将带来法律风险。
网络爬虫泄露隐私:网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个人隐私。
网络爬虫的限制
来源审查:判断UserAgent进行限制
检查来访HTTP协议头的UserAgent域,只响应浏览器或友好爬虫的访问。
对维护网站的技术人员的技术水平有要求。
发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
但是是否遵守,还是靠爬虫本身。
Robots协议
Robots Exclusion Standard 网络爬虫排除标准
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网站根目录下的robots.txt文件 Robots协议基本语法。
例如:https://www.jd.com/robots.txt
全文如下:User-agent: * Disallow: /?* Disallow: /pop/*.html Disallow: /pinpai/*.html?* User-agent: EtaoSpider Disallow: / User-agent: HuihuiSpider Disallow: / User-agent: GwdangSpider Disallow: / User-agent: WochachaSpider Disallow: /
作为搜索引擎的百度,他的robots协议的规定就复杂得多:百度robots协议
全文见本文末尾。1
2
3
4
5
6
7
8
9
10
11
12
User-agent: *
该协议将爬虫命名为User-agent,符号“ * ”代表所有,意思是所有爬虫均要遵守该协议。Disallow: /?*
Disallow是指不允许爬取的页面,“ /?* 是指根目录所有以疑问号开头的网页,/代表根目录,意思是不允许爬取该网站根目录所有以疑问号开头的网页。Disallow: /pop/*.html?*
“/pop/*.html?*
”是指一种通配符,相关知识需要先学习正则表达式。User-agent: EtaoSpider
Disallow: /
意思是名字叫EtaoSpider的爬虫禁止爬取该网站的任何网页。
Robots协议的遵守方式
若网站无robots协议或者robots协议为空,则默认爬虫可以爬取所有信息。
网络爬虫使用Robots协议:自动或人工识别robots.txt,再进行内容爬取 。
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
※百度robots协议全文(看最后一行你就懂了):
User-agent: BaiduspiderDisallow: /baiduDisallow: /s?Disallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: GooglebotDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: MSNBotDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Baiduspider-imageDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: YoudaoBotDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou web spiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou inst spiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou spider2Disallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou blogDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou News SpiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: Sogou Orion spiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: ChinasoSpiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: SosospiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: yisouspiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: EasouSpiderDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/Disallow: /bhUser-agent: *Disallow: /123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165