爬虫篇(1):学习爬虫的必须要知道的概念




爬虫篇(1):学习爬虫的必须要知道的概念_第1张图片



前言


本篇文章是对网络爬虫概念以及的基本介绍,目的是让同学们对网络爬虫有个初步的了解以及知道网络爬虫的“盗亦有道”(不能去的某些信息)。


具体如何实现,如何去写,将从下篇文章开讲。





什么是网络爬虫

网络爬虫,也叫网络蜘蛛(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协议

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):学习爬虫的必须要知道的概念_第2张图片


参考资料:

1、《python网络爬虫从入门到实践》

2、嵩天老师python爬虫MOOC






你可能感兴趣的:(爬虫篇(1):学习爬虫的必须要知道的概念)