シンプルな爬虫類を書きます

爬虫類の合法性に(A)

淘宝網に、例えば、アクセス

HTTPS:// www.baidu.com/robots.txt

最後に、2行のコードがあります。

User-Agent:* 
のDisallow: /

以前に指定された爬虫類、爬虫類のクロールに加えて、他のデータを許可しないことを意味しています。

(B)は、HTML、CSS、JavaScriptの知識を準備します

(C)図書館のウェブサイトの要求を使用するための要求

(1)は、例えばマナーwww.cntour.cnを取得します

1つの URL = 'http://www.cntour.cn/ '
 2 strhtml = requests.get(URL)
 3  プリント(strhtml.text)

(2)ポスト方法、例えばhttp://fanyi.youdao.com/

まず、双方向の情報伝達と関連するURLを決定します。プレスF12開発者ツールが表示されます:

翻訳が完了すると、[ネットワーク]を選択 - > XHRは、それがURLに抽出し、割り当てられた後、私たちが望むURLに表示されます。

このURL、提出の詳細を表示し、その具体的な情報を決定します。

ポストが異なっ取得よりデータを要求し、リクエストヘッダを構築する必要があります。データ形式(フォームデータ)パラメータが要求され、そして辞書をコピーするように構成されます。

そして、開始  requests.post方法依頼フォームデータを:

 1 import requests
 2 import json
 3 def get_translate_data(word=None):
 4     url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
 5     Form_data = {i":"我爱中国\n","from":"AUTO","to":"AUTO","smartresult":"dict","client":"fanyideskweb","salt":"15741317307555","sign":"8c28354728736eb14f6c6e7330b7d4c0","ts":"1574131730755","bv":"e2a78ed30c66e16a857c5b6486a1d326","doctype":"json","version":"2.1","keyfrom":"fanyi.web","action":"FY_BY_REALTlME"}
 6     # 请求表单数据
 7     response = requests.post(url, data=payload)
 8     # 将JSON格式字符串转字典
 9     content = json.loads(response.text)
10     # 打印翻译后的数据
11     print(content['translateResult'][0][0]['tgt'])
12 if _name_=='_main_':
13     get_translate_data('我爱数据‘)

(四)使用BeautifulSoup解析网页

通过requests库已经可以抓到网页源码,接下来要从源码中找到并提取数据——使用bs4库中的BeautifulSoup库。

首先html文档被转换成unicode编码格式,然后我们指定了lxml解析器对这段文档进行解析。解析后html文档变成树形结构,每个节点都是python对象。解析后的文档存储进新建的变量soup中。用select(选择器)定位数据,用“检查元素”,右击 copy->copy selector自动复制路径。

依然以www.cntour.cn为例:

1 import requests
2 from bs4 import BeautifulSoup
3 url='http://www.cntour.cn/'
4 strhtml=requests.get(url)
5 soup=BeautifulSoup(strhtml.text, 'lxml')
6 data=soup.select('main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a')
7 print(data)

おすすめ

転載: www.cnblogs.com/wowhy/p/11888430.html
おすすめ