問題
データをクロールするとき、通常、デバッグ情報は次のとおりです:
DEBUG: Crawled (200) <GET http://www.php.cn/> (referer: None)
DEBUG: Crawled (403) <GET http://www.php.cn/> (referer: None)
が表示される場合、Web サイトが Web クローリング防止技術 (Amazon が使用) を使用していることを意味します。ユーザー エージェントを確認するのは比較的簡単です。 (ユーザーエージェント) 情報。
解決策
以下に示すように、リクエストヘッダーでユーザーエージェントを構築します:
def start_requests(self): yield Request("http://www.php.cn/", headers={'User-Agent': "your agent string"})
以上がPython クローラーが 403 エラーを返す解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。