Web スクレイピング タスクのために Python を使用して Web ページをダウンロードしたいと考えています。問題は、Web サイトで Cookie を有効にする必要があることです。そうしないと、別のバージョンのページが表示されます。問題を解決するソリューションを実装しましたが、私の意見では非効率的です。それを改善するためにあなたの助けが必要です!
これが私が今それを乗り越える方法です:
import requests
import cookielib
cj = cookielib.CookieJar()
user_agent = {'User-agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'}
#first request to get the cookies
requests.get('https://ccirecruit.cox.com/psc/RECRUIT/EMPLOYEE/HRMS/c/HRS_HRAM.HRS_CE.GBL?JobOpeningId=42845&SiteId=1&Page=HRS_CE_JOB_DTL&PostingSeq=1&',headers=user_agent, timeout=2, cookies = cj)
# second request reusing cookies served first time
r = requests.get('https://ccirecruit.cox.com/psc/RECRUIT/EMPLOYEE/HRMS/c/HRS_HRAM.HRS_CE.GBL?JobOpeningId=42845&SiteId=1&Page=HRS_CE_JOB_DTL&PostingSeq=1&',headers=user_agent, timeout=2, cookies = cj)
html_text = r.text
基本的に、CookieJar
オブジェクトを作成してから、同じ URL に対して 2 つの連続した要求を送信します。初めて悪いページが表示されますが、補償として Cookie が提供されます。2 番目のリクエストはこの Cookie を再利用し、適切なページを取得します。
問題は、1 つのリクエストを使用するだけで、適切な Cookie 対応バージョンのページを取得できるかどうかです。
トラフィックを最小化するHEAD
代わりに、初めてリクエストを送信しようとしました。この場合、Cookie は提供されません。GET
グーグルで検索しても答えが得られませんでした。ということで、効率よく作る方法が分かって面白いです!何か案は?!