点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今日鸡汤莫学武陵人,暂游桃源里。
Python进击者
第184篇原创文章
序文
みなさん、こんにちは。私の名前はクルスです。
以前に書いたアプリキャプチャソフトウェアCharlesの構成では、30以上が監視しているとのことでしたが、すぐに次のソフトウェアを更新します。何人かの読者が私にアプリを登る方法を尋ねました、そして私は彼に段階的に教えました(複数の写真に対する警告)
それで私は残業し、みんなのために今日の記事を書きました。
この記事では、小紅書をクロールするプロセス全体について説明します。
リトルレッドブック
実行する必要がある前提条件の作業は、mitmproxyをアセンブルすることです
特定の構成プロセスについては、インストールのためにCuiの大文字を参照することをお勧めします
https://zhuanlan.zhihu.com/p/33747453
まず、前に設定したチャールズを開きます
小紅書アプレットを手に入れましょう(これはアプリではなくアプレットであることに注意してください)
アプリを選ばなかった理由は、小紅書のアプリが少し難しいので、インターネット上のいくつかのアイデアを参考にして、私はまだ小さなプログラムを選びました
1.チャールズパケットキャプチャを介してミニプログラムを分析します
小紅書アプレットを開いて、自由にキーワードを検索します
私の道をたどると、リスト内のデータが私たちによって捕らえられていることがわかります。
しかし、これは終わったと思いますか?
ダメダメダメ
このパケットキャプチャを通じて、このapiインターフェイスを介してデータを取得できることがわかります
しかし、すべてのクローラーを作成すると、ヘッダーに2つの難しいパラメーターがあることがわかります。
「承認」和「x-sign」
これら2つのことは絶えず変化しており、どこで入手できるかわかりません。
など
2.mitmproxyを使用してパケットをキャプチャします
実際、チャールズがパケットをキャプチャすることで、私たちはすでに全体的な把握のアイデアを明確にしています
「authorization」と「x-sign」の2つのパラメータを取得してから、URLにgetリクエストを送信します。
ここで使用されているmitmproxyは、実際にはCharlesに似ており、どちらもパケットキャプチャツールです。
ただし、mitmproxyはPythonで実行できます
これははるかに快適です
簡単な例を挙げてください
def request(flow):
print(flow.request.headers)
mitmproxyでこのようなメソッドを提供すると、リクエストオブジェクトを介して、リクエストヘッダーのURL、Cookie、ホスト、メソッド、ポート、スキーム、その他の属性をインターセプトできます。
これはまさに私たちが望んでいることではありませんか?
2つのパラメータ「authorization」と「x-sign」を直接インターセプトします
次に、ヘッダーに入力します
全体が完了しました。
上記は私たちのクロールのアイデア全体です。コードの書き方を説明しましょう。
実際、コードを書くのは難しくありません
まず、検索APIストリームをインターセプトして、情報を取得できるようにする必要があります。
if 'https://www.xiaohongshu.com/fe_api/burdock/weixin/v2/search/notes' in flow.request.url:
フローリクエストに検索APIURLがあるかどうかを判断します
クロールする必要があるリクエストを判別するには
authorization=re.findall("authorization',.*?'(.*?)'\)",str(flow.request.headers))[0]
x_sign=re.findall("x-sign',.*?'(.*?)'\)",str(flow.request.headers))[0]
url=flow.request.url
上記のコードを使用して、最も重要な3つのパラメーターを取得し、次にいくつかの一般的な解析jsonを取得できます。
最後に、必要なデータを取得できます
単一のデータを取得したい場合は、記事IDを取得した後でそれを取得できます
"https://www.xiaohongshu.com/discovery/item/" + str(id)
このページのヘッダーにはCookieが含まれている必要があります。WebサイトにアクセスするとCookieを取得できます。現時点では修正されているようです。
最後に、データをcsvに入れることができます
総括する
実際、小紅書クローラーのクロールは特に難しいことではありません。重要なのは、使用するアイデアと方法にあります。
これでこの号の記事は終わりです。この号で40を超える記事を読んでいる場合は、次の記事がすぐに公開されます。
次号でお会いしましょう〜
--- - --- --- --- - --- 終わり --- - --- - --- --- - -
以前の素晴らしい記事の推奨事項:
記事では、Djangoを使用して既存のデータベースからモデルを逆生成する方法を説明しています
Djangoを使用してMysqlに接続する方法を教えてください
Pythonライブラリの一般的な操作を時間どおりにまとめた記事
ようこそ誰もが好きに、メッセージを残して、前方、転載をあなたの会社やサポートをありがとうございました
Python学習グループに参加したい場合は、バックグラウンドで返信してください[グループに参加]
何千もの川や山がいつも恋をしています。[見る]をクリックしてください。
/本日のメッセージトピック/
一言か二言言ってください~~