プロジェクトのシナリオ:
最近、Python のネットワーク データ収集を学習し始めたのですが、Python のリクエストを使用して Web ページからデータを収集すると、ヘッダーとしてユーザー エージェントが追加されていても、返される HTTP ステータスは 418 のままです。
問題の説明
現在、ほとんどの Web サイトには特定の対 ** メカニズムが備わっているため、Python リクエストを使用して Web ページ データを収集する場合は、ヘッダーを追加する必要があります。そうしないと、Web サイトの対 ** メカニズムによって簡単に認識され、ステータス コード 418 が返されます。
その後、Python リクエストを使用して Web ページからデータを収集したところ、ヘッダーとして user-agent が追加されているにも関わらず結果が取得できず、res を出力すると、返されたステータス コードが <418> であることがわかりました。以下はコードの一部を表示したものです
def get_data(n):
base_url = 'https://book.douban.com/top250'
headers = {
'User - Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
params = {
'start':(n-1)*25
}
res=requests.get(base_url,headers=headers,params=params)
print(res)
get_data(1)
原因分析:
コードを継続的に検査することで、ヘッダーで問題が発生していることがわかりました。私のコードは'User - Agent'です。これは、ユーザー エージェントをネットワークにコピーするときに、便宜上、直接選択したためです。コピーします、写真が示すように。
解決:
したがって、中間のスペースを削除することで、最終的に http ステータス コードが <Response [200]> として正常に返されるようになります。
概要: 実際、コードを記述するプロセスでは、遅延によって引き起こされる問題が頻繁に発生します。このような問題は比較的小さいものですが、見つけるのが難しい場合があります。