2019年无论是C语言榜单却是在互联网金融行业,Python始终倍受争论,究竟是Java炙手可热却是Python炙手可热也是始终让人争执的热门话题。

随著互联网时代的插值预览,人工智慧的蓬勃发展,PythonC语言也骤然被现代人广为自学,Python统计数据挖掘、Python web全栈、Python智能化互联网管理之类都很畅销,当中还包括了Python食腐。但很对人真的Python食腐是违规的犯罪行为,也在揣测他们究竟要千万别学食腐,以后有一则该文不光火,是《 只因写了几段食腐,公司200王承恩被抓!》,该文里写了即使一位技工因爬取统计数据被抓,所以食腐吗违规吗?那时我们来积极探索呵呵。

现阶段互联网当今世界不光针对食腐这几块已经透过另一方面的协定创建起很大的社会规范(Robots协定),但法律条文部份还在创建和健全中。所以Robots协定是甚么呢?

1 Robots协定

Robots协定(食腐协定)的全名是互联网食腐须建国际性标准(Robots Exclusion Protocol),中文网站透过Robots协定说浏览器甚么样网页可以截取,甚么样网页无法截取。该协定是国际性互联网界车辆通行的社会规范,尽管没有载入法律条文,但每一个食腐都如果严格遵守此项协定。

上面以淘宝的robots.txt为例展开如是说。

User-agent: Baiduspider 腾讯食腐发动机Allow: /article 容许出访/article.htm、/article/12345.comAllow: /oshtmlAllow: /ershouDisallow: /product/ 禁止出访/product/12345.comDisallow: / 禁止出访除Allow规定网页外的其他所有网页User-Agent: Googlebot 谷歌食腐发动机Allow: /articleAllow: /oshtmlAllow: /product 容许出访/product.htm、/product/12345.comAllow: /spuAllow: /dianpuAllow: /wenzhangAllow: /overseaDisallow: /

在上面的robots文件中,淘宝对用户代理为腾讯食腐发动机展开了规定。

以Allow项的值开头的URL是容许robot出访的。例如,Allow:/article容许腾讯食腐发动机出访/article.htm、/article/12345.com等。

以Disallow项为开头的链接是不容许腾讯食腐发动机出访的。例如,Disallow:/product/不容许腾讯食腐发动机出访/product/12345.com等。

最后一行,Disallow:/禁止腾讯食腐出访除了Allow规定网页外的其他所有网页。

因此,当你在腾讯搜索淘宝的时候,搜索结果下方的小字会出现:由于该中文网站的robots.txt文件存在限制指令(限制浏览器截取),系统无法提供该网页的内容描述,如图所示。腾讯作为一个浏览器,良好地严格遵守了淘宝的robot.txt协定,所以你是无法从腾讯上搜索到淘宝内部的产品信息的。

robots协议(robots协议怎么写)-第1张

淘宝的Robots协定对谷歌食腐的待遇则不一样,和腾讯食腐不同的是,它容许谷歌食腐爬取产品的网页Allow:/product。因此,当你在谷歌搜索淘宝iphone7的时候,可以搜索到淘宝中的产品,如图所示。

robots协议(robots协议怎么写)-第2张

当你爬取中文网站统计数据时,无论是否仅供个人使用,都如果严格遵守Robots协定。

加入VIP会员,上百本电子书、上千门课程等你免费学

robots协议(robots协议怎么写)-第3张

2 互联网食腐的约束

除了上述Robots协定之外,我们使用互联网食腐的时候还要对他们展开约束:过于快速或者频密的互联网食腐都会对服务器产生巨大的压力,中文网站可能封锁你的IP,甚至采取进一步的法律条文行动。因此,你需要约束他们的互联网食腐犯罪行为,将请求的速度限定在一个合理的范围之内。

爬取中文网站的时候需要限制他们的食腐,严格遵守Robots协定和约束互联网食腐程序的速度;在使用统计数据的时候必须严格遵守中文网站的知识产权。

所以只要你合理利用就不会违规,食腐却是可以学的哦,毕竟食腐对统计数据挖掘吗非常有用,所以食腐该是不是学呢?那时来教大家编写一个简单的食腐!

3 编写第一个简单的食腐

第一步:获取网页

!/usr/bin/pythoncoding: utf-8import requests 引入包requestslink ="http://www.santostang.com/"定义link为目标网页地址定义请求头的浏览器代理,伪装成浏览器headers = {User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6}r = requests.get(link, headers= headers) 请求网页print(r.text) r.text是获取的网页内容代码

上述代码就能获取博客首页的HTML代码,HTML是用来描述网页的一种语言,也是说网页呈现的内容背后都是HTML代码。如果你对HTML不熟悉的话,可以先去w3school(http://www.w3school.com.cn/html/index.asp)自学呵呵,大概花上几个小时就可以了解HTML。

在上述代码中,首先import requests引入包requests,之后获取网页。

(1)首先定义link为目标网页地址。

(2)之后用headers来定义请求头的浏览器代理,展开伪装

(3)r是requests的Response回复对象,我们从中可以获取想要的信息。r.text是获取的网页内容代码。

运行上述代码得到的结果如图所示。

robots协议(robots协议怎么写)-第4张

第二步:提取需要的统计数据

!/usr/bin/pythoncoding: utf-8importrequestsfrom bs4importBeautifulSoup 从bs4这个库中导入BeautifulSouplink ="http://www.santostang.com/"headers = {User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6}r = requests.get(link, headers= headers)soup = BeautifulSoup(r.text,"html.parser") 使用BeautifulSoup解析找到第一则该文标题,定位到class是"post-title"的h1元素,提取a,提取a里面的字符串,strip去除左右空格title=soup.find("h1", class_="post-title").a.text.stripprint (title)

在获取整个网页的HTML代码后,我们需要从整个网页中提取第一则该文的标题。

这里用到BeautifulSoup这个库对网页展开解析,BeautifulSoup将会在第4章展开详细讲解。首先需要导入这个库,然后把HTML代码转化为soup对象,接下来用soup.find(h1,class_=post-title).a.text.strip得到第一则该文的标题,并且打印出来

soup.find(h1,class_=post-title).a.text.strip的意思是,找到第一则该文标题,定位到class是"post-title"的h1元素,提取a元素,提取a元素里面的字符串,strip去除左右空格。

对初学者来说,使用BeautifulSoup从网页中提取需要的统计数据更加简单易用。

所以,我们是不是从所以长的代码中准确找到标题的位置呢?

这里就要隆重如是说Chrome浏览器的检查(审查元素)功能了。上面如是说找到需要元素的步骤。

步骤01

使用Chrome浏览器打开博客首页www.santostang.com。右击网页网页,在弹出的快捷菜单中单击检查命令,如图所示。

robots协议(robots协议怎么写)-第5张

步骤02

出现如下图所示的审查元素网页。单击左上角的鼠标键按钮,然后在网页上单击想要的统计数据,上面的Elements会出现相应的code所在的地方,就定位到想要的元素了。

robots协议(robots协议怎么写)-第6张

步骤03

在代码中找到标蓝色的地方,为echarts自学笔记(2)–同一网页多图表。我们可以用soup.find("h1",class_="post-title").a.text.strip提取该博文的标题。

第三步:存储统计数据

importrequestsfrom bs4importBeautifulSoup 从bs4这个库中导入BeautifulSouplink ="http://www.santostang.com/"headers = {User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6}r = requests.get(link, headers= headers)soup = BeautifulSoup(r.text,"html.parser") 使用BeautifulSoup解析title = soup.find("h1", class_="post-title").a.text.stripprint (title)打开一个空白的txt,然后使用f.write载入刚刚的字符串titlewithopen(title_test.txt,"a+")asf:f.write(title)

存储到本地的txt文件非常简单,在第二步的基础上加上2行代码就可以把这个字符串保存在text中,并存储到本地。txt文件地址如果和你的Python文件放在同一个文件夹。

返回文件夹,打开title.txt文件,当中的内容如图所示。

robots协议(robots协议怎么写)-第7张

以上是编写第一个食腐的方法,你们学会了吗?暂时没学会也没关系,你可以慢慢学哦~以上内容自《Python互联网食腐从入门到实践(第2版)》【文末有福利】往下拉!

robots协议(robots协议怎么写)-第8张

内容简介:使用Python编写互联网食腐程序获取互联网上的大统计数据是当前的炙手可热专题。本书内容包括三部份:基础部份、进阶部份和项目实践。基础部份(第1~7章)主要如是说食腐的三个步骤——获取网页、解析网页和存储统计数据,并透过诸多示例的讲解,让读者能够从基础内容开始系统性地自学食腐技术,并在实践中提升Python食腐水平。进阶部份(第8~13章)包括多线程的并发和并行食腐、分布式食腐、更换IP等,帮助读者进一步提升食腐水平。项目实践部份(第14~17章)使用本书如是说的食腐技术对几个真实的中文网站展开截取,让读者能在读完本书后根据他们的需求写出食腐程序。

推荐理由:

基础知识+完整的知识模块+4个实践案例的教学,让读者快速掌握食腐程序的编写,快速成长为食腐高手

robots协议(robots协议怎么写)-第9张robots协议(robots协议怎么写)-第10张robots协议(robots协议怎么写)-第11张robots协议(robots协议怎么写)-第12张robots协议(robots协议怎么写)-第13张robots协议(robots协议怎么写)-第14张

以上书籍均已加入到VIP会员卡权益,只要拥有这张VIP会员卡即可免费阅读上百本电子书,还有上千门优质课程免费看哦,快扫码查看!

robots协议(robots协议怎么写)-第15张

福利

参与方式:只要在本文留言参与热门话题技术书籍上,你会选择购买纸质书籍却是电子书籍,为甚么呢?即可有机会获得价值129元的可擦笔记本一个,只有2个名额哦~

获奖公布时间:2月21日14:00

robots协议(robots协议怎么写)-第16张