Zhihu でユーザーのフォロー情報 (A が誰をフォローしているかを確認するなど) をキャプチャし、ページ www.zhihu.com/people/XXX/followees からフォロワーのリストを取得したいと考えていますが、キャプチャ中に 403 の問題が発生しました。
1. クローラーはユーザーの注目情報を収集するためのみであり、学術研究を目的としたものではありません。
2. PHP を使用してリクエストを作成し、simple_html_dom を使用してドキュメントを解析します。フォロワー (フォロワー) リストでは、より多くのフォロワーを動的に読み込むために Ajax を使用する必要があるため、インターフェイス データを直接クロールして、より多くのフォロワーの読み込みが
http://www.zhihu を通じて行われることがわかります。 com/node/ProfileFolloweesListV2、投稿データには _xsrf、method、parmas が含まれているため、ログインしたままの状態で、投稿に必要なパラメーターを指定してこのリンクにリクエストを送信しましたが、403 でした。が返されます。 4. ただし、ログインをシミュレートする場合、いいねや感謝の数などのデータも解析できます。
5. リクエスト ヘッダーを設定するために、curl_setopt($ch, CURLOPT_HTTPHEADER, $header); を使用します。リクエストヘッダーはブラウザで送信したリクエストヘッダーと一致しますが、それでも 403 エラーが発生しました
6.curl リクエストヘッダーを出力して、ブラウザーによって送信されたリクエストヘッダーと比較しようとしましたが、正しい方法が見つかりませんでした (Baidu では、curl_getinfo() が対応するメッセージを出力するようです)
7. User-Agent または X-Requested-With が設定されていないため、多くの人が 403 に遭遇しましたが、私はリクエストを設定するときに設定しました。 5
8で説明したヘッダー。説明が不明瞭でコードを投稿する必要がある場合は、コードを投稿できます
9。このクローラーは卒業制作の一部であり、次の作品用にデータを取得する必要があります。データのクロールは純粋に学術研究のためです
返信内容:
サーバーにファイアウォール機能がある場合、プロキシ サーバーを多数設置しない限り、継続的なクロールが強制終了される可能性があります。または、最も簡単な方法は、adsl を使用して常にリダイヤルし、ip を変更することです。 まずブラウザを見つけて、リクエストの HTTP ヘッダーを調べてから、リクエストを取得します。 過去 2 日間で、Python を使用してユーザーのフォローとフォロワーを捕捉するクローラーを作成したばかりです。これは Python コードの一部です。コードを見てコードの問題を確認できます。
403 は、リクエスト中に一部のデータが誤って送信されたことを意味します。次のコードにはオープン テキストが含まれており、テキスト内のコンテンツ スタイルのスクリーンショットを撮って最後に追加しました。- Cookie がない
- _xsrf または hash_id エラー
///
/ // 志胡の質問
///
/// 質問のタイトル
/// 詳細内容
/// ログイン後に取得されるCookie
public void ZhiHuFaTie(string question_title,string question_detail,CookieContainer cookie)
{
question_title="質問内容" ;
question_detail="質問の詳細な説明";
//Cookie を走査し、_xsrf の値を取得します
var list = GetAllCookies(cookie);
foreach (var item in list)
{
if (item.Name = = " _xsrf")
{
xsrf = item.Value;
Break;
}
}
//Post
var FaTiePostUrl = "http://www.zhihu.com/question/add" ;
var dd = topicStr.ToCharArray();
var FaTiePostStr = "question_title=" + HttpUtility.UrlEncode(question_title) + "&question_detail=" + HttpUtility.UrlEncode(question_detail) + "&anon=0&topic_ids=" + topicId + "&new_topics =&_xsrf ="+xsrf;
var FaTieResult = nhp.PostResultHtml(FaTiePostUrl, cookie, "http://www.zhihu.com/", FaTiePostStr);
}
///
// / トラバースCookieContainer
///
///
///
public static List
{
List
ハッシュテーブル テーブル = (Hashtable)cc.GetType().InvokeMember("m_domainTable",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField |
System.Reflection.BindingFlags.Instance, null, cc, new object[] { });
foreach (object pathList in table.Values)
{
SortedList lstCookieCol = (SortedList )pathList .GetType().InvokeMember("m_list",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField
| System.Reflection.BindingFlags.Instance, null, pathList, new object[] { }) ;
foreach (lstCookieCol.Values の CookieCollection ColCookies)
foreach (colCookies の Cookie c) lstCookies.Add(c);
}
return lstCookies;
} ヘッダーの X-Forwarded-For フィールドを変更して IP アドレスを偽装します。 なんという偶然でしょう、昨夜この問題に遭遇したばかりです。理由はたくさんあるかもしれませんが、参考までに、またアイデアを提供するために、私が遭遇したことだけをお話しします。私は新浪微博をクロールしてプロキシを使用しました。アクセス時にWebサイトが拒否されるため403が表示されます。ブラウザで同じことを行うと、いくつかのWebページを見るだけで403が表示されますが、何度か更新すれば問題ありません。コード内の実装では、複数回リクエストを実行します。 上記の回答を読んだ後、私はすぐに愕然としました。素晴らしい人はたくさんいますが、リー・カイフーに聞いてみることをお勧めします〜笑 インターフェイスがどのようにキャッチされるかについて話しましょう... Firebug でインターフェイスをキャッチできないのはなぜですか? Chrome のネットワークでもインターフェイスをキャッチできません
そういえば、フォロワーに直接リクエストすることで直接取得できます。 。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6
ビジュアル Web 開発ツール
