- Python数据分析入门:从数据获取到可视化
- 沈祥壮
- 674字
- 2020-08-28 01:45:51
2.1 爬虫简介
什么是网络爬虫呢?网络爬虫(web crawler),也被称为网络蜘蛛(web spider),是在万维网浏览网页并按照一定规则提取信息的脚本或者程序。一般浏览网页时,流程如图2-1所示。
图2-1
而利用网络爬虫爬取信息就是模拟这个过程。用脚本模仿浏览器,向网站服务器发出浏览网页内容的请求,在服务器检验成功后,返回网页的信息,然后解析网页并提取需要的数据,最后将提取得到的数据保存即可。关于模拟过程的解释如下。
●怎样发起请求
使用requests库来发起请求。
●服务器为什么要检验请求
大量的爬虫请求会造成服务器压力过大,可能使得网页响应速度变慢,影响网站的正常运行。所以网站一般会检验请求头里面的User-Agent(以下简称UA,相当于身份的识别)来判断发起请求的是不是机器人,而我们可以通过自己设置UA来进行简单伪装。也有些网站设置有robots.txt来声明对爬虫的限制,例如www.baidu.com/robots.txt。
●怎样解析网页并提取数据
这里使用BeautifulSoup库和正则表达式来解析网页并提取数据。
●怎样保存提取的内容
可以根据数据格式的不同将内容保存在TXT、CSV、XLSX、JSON等文件中,对于数据量比较大的内容,可以选择存入数据库。
注意:有些网站设置robots.txt来声明对爬虫的限制,一般情况下,我们应当遵守此规则。关于robots.txt的知识,这里仅作简单介绍,详情请参考维基百科或者http://www.robotstxt.org/。之后我们还会简单介绍如何遵守robots.txt进行数据获取。此外,本书所有爬虫代码示例均为学习交流之便。作为一名合格的互联网公民,希望读者在开发企业级爬虫获取数据时仔细阅读相关网站的robots.txt,合理采集数据,切勿对网站造成过载等不良影响。
至此,已经大概了解网络爬虫的原理。想深入了解传输原理的读者可参考一些关于HTTP协议的资料。接下来,我们将进行实际操作。