我想使用 python 下载一个网页来完成一些网页抓取任务。问题是该网站需要启用 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 发送两个连续的请求。第一次它为我提供了糟糕的页面,但作为补偿给了 cookie。第二个请求重用了这个 cookie,我得到了正确的页面。
问题是:是否有可能只使用一个请求并仍然获得正确的启用 cookie 的页面版本?
我尝试HEAD
第一次发送请求而不是GET
尽量减少流量,在这种情况下不提供 cookie。谷歌搜索也没有给我答案。因此,了解如何有效地制作它很有趣!有任何想法吗?!