Python 如何使用可扩展选项卡和后续POST请求刮取数据(CORS问题)

Python 如何使用可扩展选项卡和后续POST请求刮取数据(CORS问题),python,web-scraping,Python,Web Scraping,有一个我需要擦掉的洞。它有一个很长的可用职务列表,默认情况下会折叠: 当用户单击它时,它会展开: 当用户打开该页面时,该页面将向具有职位id的网站发送POST请求 我试图模拟这个请求,请参见下面的代码,它不会失败状态==200,但不会返回任何内容。我怀疑那是因为CORS。是否仍然需要收集数据 导入请求 url=https://econjobmarket.org/positions/recordClick 有效载荷='posid=7026' 标题={ “接受”:“*/*”, “X-CSRF-TOK

有一个我需要擦掉的洞。它有一个很长的可用职务列表,默认情况下会折叠:

当用户单击它时,它会展开:

当用户打开该页面时,该页面将向具有职位id的网站发送POST请求

我试图模拟这个请求,请参见下面的代码,它不会失败状态==200,但不会返回任何内容。我怀疑那是因为CORS。是否仍然需要收集数据

导入请求 url=https://econjobmarket.org/positions/recordClick 有效载荷='posid=7026' 标题={ “接受”:“*/*”, “X-CSRF-TOKEN”:这里是“X-CSRF-TOKEN”, “X-request-With':“XMLHttpRequest”, “内容类型”:“应用程序/x-www-form-urlencoded;字符集=UTF-8”, “饼干”:饼干来了 } response=requests.requestPOST,url,headers=headers,data=payload printresponse.text.encode'utf8'
我没有看到为获取扩展数据而发送的其他请求。所有处于折叠和展开状态的数据都已在页面源中


我没有看到为获取扩展数据而发送的其他请求。所有处于折叠和展开状态的数据都已在页面源中


您看到的recordClick URL仅用于记录web分析的单击。正如帕罗拉所说,你所寻找的已经在页面源代码中了。您最好的选择是在网站上进行HTTP访问,并使用解析html代码。

您看到的recordClick URL只是用于记录web分析的单击。正如帕罗拉所说,你所寻找的已经在页面源代码中了。您最好的选择是在网站上进行HTTP访问,并使用解析html代码。

如果您从请求标题中删除令牌和cookie,则会降低网站跟踪您的能力,并可能阻止您的抓取

在curl中的快速测试表明,如果没有它们,响应仍然是完整的

curl -i -s -k -X $'GET' \
    -H $'Host: econjobmarket.org' -H $'Connection: close' -H $'Cache-Control: max-age=0' -H $'DNT: 1' -H $'Upgrade-Insecure-Requests: 1' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' -H $'Sec-GPC: 1' -H $'Sec-Fetch-Site: cross-site' -H $'Sec-Fetch-Mode: navigate' -H $'Sec-Fetch-User: ?1' -H $'Sec-Fetch-Dest: document' -H $'Accept-Encoding: gzip, deflate' -H $'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
    $'https://econjobmarket.org/positions'


J和Parola是正确的,这篇文章只是在网站上记录你的行为。

如果你从请求标题中删除令牌和cookie,你可以降低网站跟踪你的能力,并可能阻止你的抓取

在curl中的快速测试表明,如果没有它们,响应仍然是完整的

curl -i -s -k -X $'GET' \
    -H $'Host: econjobmarket.org' -H $'Connection: close' -H $'Cache-Control: max-age=0' -H $'DNT: 1' -H $'Upgrade-Insecure-Requests: 1' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' -H $'Sec-GPC: 1' -H $'Sec-Fetch-Site: cross-site' -H $'Sec-Fetch-Mode: navigate' -H $'Sec-Fetch-User: ?1' -H $'Sec-Fetch-Dest: document' -H $'Accept-Encoding: gzip, deflate' -H $'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
    $'https://econjobmarket.org/positions'


J和帕罗拉是正确的,这篇文章只是在网站上记录你的行为。

相信我,它就在那里。如果您在chrome中打开控制台并选择“网络”部分,您将在每次扩展itOk时发布发送的请求,对不起,您是对的!它是存在的,但它只是用于web分析,不返回任何数据。@PhilippChapkovski,是的,我看到recordClick XHR请求,但我想它只是用于统计,以便服务器保留有关用户检查每个作业的次数的信息description@Parolla我是个白痴相信我它就在那里。如果您在chrome中打开控制台并选择“网络”部分,您将在每次扩展itOk时发布发送的请求,对不起,您是对的!它是存在的,但它只是用于web分析,不返回任何数据。@PhilippChapkovski,是的,我看到recordClick XHR请求,但我想它只是用于统计,以便服务器保留有关用户检查每个作业的次数的信息description@Parolla我是个白痴