本篇文章是对网络爬虫概念以及的基本介绍,目的是让同学们对网络爬虫有个初步的了解以及知道网络爬虫的“盗亦有道”(不能去的某些信息)。
具体如何实现,如何去写,将从下篇文章开讲。
网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网,Spider就是一只在网上爬来爬去的蜘蛛。
网络爬虫就是根据网页的地址来寻找网页的,也就是URL。
举一个简单的例子,我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com/
URL就是统一资源定位符(Uniform Resource Locator),它的一般格式如下(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
URL的格式由三部分组成:
(1)protocol:第一部分就是协议,例如百度使用的就是https协议;
(2)hostname[:port]:第二部分就是主机名(还有端口号为可选参数),一般网站默认的端口号为80,例如百度的主机名就是www.baidu.com,这个就是服务器的地址;
(3)path:第三部分就是主机资源的具体地址,如目录和文件名等。
网络爬虫就是根据这个URL来获取网页信息的。
(1)获取网页就是给一个网址发送请求,该网址会返回整个网页的数据。类似于在浏览器中键入网址并按回车键,然后可以看到网站的整个页面。
(2)解析网页就是从整个网页的数据中提取想要的数据。类似于在浏览器中看到网站的整个页面,但是你想找的是产品的价格,价格就是你想要的数据。
(3)存储数据也很容易理解,就是把数据存储下来。我们可以存储在csv中,也可以存储在数据库中。
下面的技术实现方法都是使用Python 语言实现的,对于Java等其他语言本书并不涉及。
1.获取网页
获取网页的基础技术:request、urllib和selenium(模拟浏览器)。
获取网页的进阶技术:多进程多线程抓取、登录抓取、突破IP封禁和服务器抓取。
2.解析网页
解析网页的基础技术:re正则表达式、BeautifulSoup和lxml。
解析网页的进阶技术:解决中文乱码。
3.存储数据
存储数据的基础技术:存入txt文件和存入csv文件。
存储数据的进阶技术:存入MySQL数据库和存入MongoDB数据库。
对于上述技术不熟悉的读者也不必担心,本教程将会对其中所有的技术进行讲解,力求做到深入浅出。
《刑法》第285条,非法获取计算机信息系统数据罪。
获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,处三年以下有期徒刑或者拘役,并处或者单处罚金;
最高处七年有期徒刑并处罚金。
《刑法》第285条是对爬取数据的主要定罪依据,有兴趣可以去查下中华人民共和国刑法。
再来看下网页对网络爬虫的限制,主要有两种:
来源审查:判断User-Agent进行限制检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问
发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
Robots Exclusion Standard,网络爬虫排除标准。
作用:
网站告知网络爬虫哪些页面可以抓取,哪些不行
形式:
在网站根日录下的robots.txt文件
#京东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: /
来分析下这段内容的含义:
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/.html?
这一段的意思对于任何爬虫,均不能访问后缀为/?,/pop/.html,/pinpai/.html? 的网页
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
这几段的意思是EtaoSpider,HuihuiSpider,GwdangSpider,WochachaSpider这几个网络爬虫不能访问京东的任何页面。
关注【panda一块砖】,回复【python爬虫】,即可获取经典爬虫入门电子书《PYTHON网络爬虫从入门到实践.pdf》
参考资料:
1、《python网络爬虫从入门到实践》
2、嵩天老师python爬虫MOOC