あなたの最初の爬虫類を作成する方法をお教え

プログラミング言語か、それはインターネット業界であるかどうか、Pythonは最後に、議論されているの2019年リストは、一般的なJavaやPythonでも主張人のホットな話題となっています。

情報化時代の反復更新により、人工知能の上昇は、Pythonプログラミング言語も広くデータ分析のPython、Pythonのウェブフルスタック、Pythonはそうで運用・保守の自動化や、学習も爬虫類のPythonを含む、非常に人気があるだろう。しかし、それはPythonの爬虫類は、記事がある前に爬虫類を学ぶない最後に、特別な火災があることは違法でなく、疑わしい感じることであるいくつかの爬虫類を書いたので、200社の以上の企業がキャッチ」!"、データをクロールので、技術者が逮捕されたので、彼はその後、爬虫類、それが本当に違法、記事を書きましたか?今日は探ります。

現在、インターネットの世界は、爬虫類のために、この1には、独自プロトコルによる倫理(ロボットプロトコル)の特定のコードを確立していますが、法律はまだ確立と改善の一部です。だから、ロボット契約は、それは何ですか?

ロボット契約

ロボットプロトコル(爬虫類プロトコル)のフルネームは、「ウェブクローラ除外基準」(ロボット排除プロトコル)で、サイトには、ページがページをクロールすることができないロボットの合意により、クロールすることができ、検索エンジンに指示します。何も書かれた法律はありませんが、合意には、道徳的基準を受け入れ、国際インターネットコミュニティであるが、すべての爬虫類は、本契約を遵守しなければなりません。

robots.txtの淘宝下に例として説明。

User-agent:  Baiduspider    #百度爬虫引擎
Allow:  /article     #允许访问/article.htm、/article/12345.com
Allow:  /oshtml      
Allow:  /ershou
Disallow:  /product/ #禁止访问/product/12345.com
Disallow:  /         #禁止访问除Allow规定页面外的其他所有页面


User-Agent:  Googlebot   #谷歌爬虫引擎
Allow:  /article
Allow:  /oshtml
Allow:  /product     #允许访问/product.htm、/product/12345.com
Allow:  /spu
Allow:  /dianpu
Allow:  /wenzhang
Allow:  /oversea
Disallow:  /

上記ロボットファイルでは、淘宝網のユーザエージェントは、爬虫類エンジン百度を提供します。

URLは、項目の値で始まる許可のアクセスにロボットを可能にすることです。たとえば、許可:/記事は、アクセス/article.htm,/article/12345.comエンジン百度や他の爬虫類ができます。

禁止するリンクの先頭のエントリがアクセスBaiduのエンジンのクローラに許可されていません。たとえば、のDisallow:/製品/爬虫類エンジンBaiduのは、アクセス/product/12345.comなど許可されていません。

最後の行、のDisallow:/禁止Baiduは指定されたページを許可に加えて、他のすべてのページへのアクセスを爬虫類。

検索結果の下に小さなプリントが表示されたときに「淘宝網」のためのBaiduの検索にいるときに、「サイトのrobots.txtファイルの制限命令は(クロールに検索エンジンを制限する)があるので、システムは、ページの内容の説明を提供することはできません」図に示すように。あなたが淘宝網内部の製品情報にBaiduの検索からではありませんので、検索エンジンBaiduの通り、淘宝網良いが、契約を遵守しrobot.txt。

淘宝網ロボット契約は、Googleの爬虫類、爬虫類の治療のために同じではなく、Baiduは、それはGoogleが許可爬虫類の製品ページをクロールできることです異なっている:/製品を。示すように、ときに「淘宝網iphone7」のGoogle検索、彼らは、淘宝網の製品を検索することができます。

あなたは、ウェブサイトのデータをクロールするとき、唯一の個人的な使用のためかどうか、あなたはロボットの合意を遵守すべきです。

あなたが学ぶようVIP、電子書籍、無料コースの数十万人が参加

ウェブクローラの制約

上記ロボットの契約に加えて、我々は時間の制約に自分自身をWebクローラーを使用する必要がありますが速すぎるまたは頻繁ウェブクローラーがサーバー上の巨大な圧力を持っていますが、サイトがあなたのIPをブロックしてもよいし、さらに法的措置をとること。そのため、あなたは自分のWebクローラーの動作、合理的な範囲内で要求された制限速度を抑制する必要があります。

ウェブサイトをクロールあなたが彼らの爬虫類、契約および制約ロボットスピードウェブクローラプログラムの遵守を制限する必要があること、知的財産権のウェブサイトのデータを使用しているときに観察する必要があります。

あなたは違法の使用の合理化ではないであろうと、すべての爬虫類のデータ解析が本当に便利になった後ので、爬虫類はまだ、ああ、学ぶことができ、それを学ぶためにどのように爬虫類?今日、私はシンプルな爬虫類を書くためにあなたを教えて!

あなたの最初のシンプルな爬虫類を書きます

最初のステップ:ページを取得

#!/usr/bin/python
# coding: utf-8


import requests #引入包requests
link = "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ページのコンテンツの背後にあるWebページを記述するために使用される言語は、HTMLコードレンダリングされています。あなたがHTMLに精通していない場合は、おそらくHTMLを理解するために数時間を費やし、w3school(http://www.w3school.com.cn/html/index.asp)について学ぶために行くことができます。

上記のコードでは、最初の袋の中に導入されたページを取得した後、インポート要求を要求します。

(1)最初のリンクは、リンク先ページのアドレスとして定義されています。

(2)後にヘッダブラウザリクエストヘッダ剤マスカレードを定義します

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

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


第二步:提取需要的数据

#!/usr/bin/python
# coding: utf-8


import requests
from bs4 import BeautifulSoup     #从bs4这个库中导入BeautifulSoup


link = "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.strip()
print (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。右击网页页面,在弹出的快捷菜单中单击“检查”命令,如图所示。

步骤02 

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


步骤03 

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

第三步:存储数据

import requests
from bs4 import BeautifulSoup   #从bs4这个库中导入BeautifulSoup


link = "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.strip()
print (title)


# 打开一个空白的txt,然后使用f.write写入刚刚的字符串title
with open('title_test.txt', "a+") as f:
    f.write(title)

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

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

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

扫码加入VIP会员免费读

内容简介:

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

推荐理由:

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

更多Python好书推荐

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

福利

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

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


如果可以的话也可扫码入群一起交流学习哦~电子书的任何问题都可以在群里沟通!


发布了1716 篇原创文章 · 获赞 4万+ · 访问量 1538万+

おすすめ

転載: blog.csdn.net/csdnnews/article/details/104386218