このアーティファクトは、多くの爬虫類プログラマーを救いました!

皆さんこんにちは、ペイソンソースです。

誰もがクローラーを作成する必要があり、単純なクローラーはリクエストを使用するだけでよいと思います。複雑なクローラーに遭遇した場合、要求ヘッダーとパラメーター情報をプログラムに追加する必要があります。このようなもの:

e1ae6e88566cdc959437fe0cb6a05e4b.png

一般的な手順は、まずブラウザのネットワーク リクエストで必要なリクエストを見つけ、次にリクエスト ヘッダーとパラメータ情報を 1 つずつプログラムにコピーすることです。

9ca5fd005856b7b9516d5df36c45dcac.png

毎回これを行うのは面倒で、間違いを犯しやすい場合もあります。

今日は、ブラウザーの要求ヘッダー情報をクローラーが必要とするコードに自動的に解析できるアーティファクトを紹介します。

インストール

まず、この成果物をインストールする必要があります。

pip install filestools -U

Alibaba Cloud を使用して高速化することもできます。

pip install filestools --index-url=http://mirrors.aliyun.com/pypi/simple -U

もちろん、最新バージョンをダウンロードしたい場合は、次のコマンドを使用できます。

pip install filestools --index-url https://pypi.org/simple/ -U

使用

このアーティファクトの使用も非常に簡単です。

最初のステップは、ブラウザの機能を使用して、必要なリクエスト ヘッダー情報をネットワークからコピーすることです。

20b01716ad11f00b20937207d25403ab.png

次に、コピーしたコンテンツを変換プログラムに貼り付けます。

from curl2py.curlParseTool import curlCmdGenPyScript

curl_cmd = """curl 'http://www.shixi.com/search/index?key=python'
-H 'Connection: keep-alive'
-H 'Cache-Control: max-age=0'
-H 'Upgrade-Insecure-Requests: 1'
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
-H 'Referer: http://www.shixi.com/'
-H 'Accept-Language: zh-CN,zh;q=0.9'
-H 'Cookie: UM_distinctid=17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff; PHPSESSID=rpprvtdrcrvt54fkr7msgcde17; CNZZDATA1261027457=1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311; Hm_lvt_536f42de0bcce9241264ac5d50172db7=1627741268; Hm_lpvt_536f42de0bcce9241264ac5d50172db7=1627741334'
--compressed
--insecure"""

output = curlCmdGenPyScript(curl_cmd)
print(output)

ここでcurl_cmdに入れるだけです。

最後に、プログラムを実行すると、次のように出力ウィンドウにコードが表示されます。

#######################################
#      The generated by curl2py.      
#      author:小小明
#######################################

import requests
import json

headers = {
    "Connection": "keep-alive",
    "Cache-Control": "max-age=0",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Referer": "http://www.shixi.com/",
    "Accept-Language": "zh-CN,zh;q=0.9"
}
cookies = {
    "UM_distinctid": "17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff",
    "PHPSESSID": "rpprvtdrcrvt54fkr7msgcde17",
    "CNZZDATA1261027457": "1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311",
    "Hm_lvt_536f42de0bcce9241264ac5d50172db7": "1627741268",
    "Hm_lpvt_536f42de0bcce9241264ac5d50172db7": "1627741334"
}
params = {
    "key": "python"
}

res = requests.get(
    "http://www.shixi.com/search/index",
    params=params,
    headers=headers,
    cookies=cookies
)
print(res.text)

必要に応じて、これらのコードをクローラーにコピーするだけです。

要約する

これは実際には非常に単純なプログラムですが、コード作成プロセスの問題点を解決し、コード作成の効率を向上させることができます。

私は今でもこの「シャオ・シャオミン」クラスメートに非常に感謝し、尊敬しています。彼はコード農家の中で本当に思いやりのある人です。

交換グループ

2ヶ月の時を経て、Moyuの学びと交流の​​会が期間限定で再開します。

e302518c86cfe1eecee0e965fbef4ee5.png

パイソン技術交流会(主に技術交流、釣り、無料売春講座)随時開催中 興味のある方は下記の公式アカウントに返信してください 666 エントリー可 一緒に100プランも 

古いルール、覚えていますか、右下隅にある「探している」をクリックしてください。記事の内容が良いと思われる場合は、モーメントで共有して、より多くの人に知らせることを忘れないでください!

e7c16781930f14fa0040ba96e506eff5.gif

不思議なギフトパックの入手方法

以下の公式アカウントを特定し、返信: 1024

f0cbffd32fb02c228f6b9082861284aa.jpeg

おすすめ

転載: blog.csdn.net/weixin_48923393/article/details/128928506