网络爬虫介绍
在浏览网站中,所能见到的数据可以通过爬虫程序保存下来。
网络爬虫,小规模可以爬取网页,大规模可以爬取网站,或一系列的网站,超大规模的像搜索引擎的这种难以完成,需要定制开发,爬取全网。
网络爬虫会带来一定的性能骚扰,Web服务器默认接收人类访问受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销。
服务器上的数据有产权归属网络爬虫获取数据后牟利将带来法律风险。
网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个人隐私
网络爬虫的限制:
- 来源审查:判断User‐Agent进行限制
检查来访HTTP协议头的User‐Agent域,只响应浏览器或友好爬虫的访问 - 发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
Robots协议
Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以爬取,哪些页面不可以爬取。这个协议是互联网中的道德规范,虽没写入法律,但应遵守。在网站末尾加/robots.txt
可以进行查看
淘宝网的robots协议
腾讯新闻的
例如
User-agent: Baiduspider
Allow: /article
Allow: /oshtml
Allow: /wenzhang
Disallow: /product/
Disallow: /
允许Baiduspider爬寻article、oshtml、wenzhang整个目录,禁止爬寻product目录下面的目录。其它禁止访问。
Robots协议的语法:
- #注释,*代表所有,/代表根目录
无robots协议的网站,信息可以爬取。
自动或人工识别robots.txt,再进行内容爬取,Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
访问量很小的可以遵循,访问量大的建议遵循。非商业的建议遵循,涉及商业利益的必须遵循,爬取全网信息必须要遵循。如果是类似人类行为的爬取信息,可不遵循。
爬虫技术流程
网络爬虫的流程:
1.获取网页——>解析网页(提取数据)——>存储数据
获取网页就是给网址发送请求,网址会返回整个网页的数据。
解析网页是从整个网页的数据中提取想要的数据。
存储数据就是把数据保存下来,我们可以存储在csv中,也可存在数据库中。
三个流程的技术实现
1.获取网页:
获取网页的基础技术可以用到,requests、urlib、selenium。进阶用到的技术,有 多进程多线程的抓取、登录抓取、突破IP封禁、使用服务器抓取。
2.解析网页:
解析网页的技术,re正则表达式、BeautifulSoup、xml、解决中文乱码问题。
3.存储数据
存储数据的基础我们一般可以存在txt文件和csv文件,高级一点的需要连接数据库,将信息保存到数据库中,如存入MySQL、MongoDB