在 GCP VM 上使用请求 python 抓取时缺少一些标记 HTML

Missing some tag HTML while scraping using requests python on GCP VM

我正在尝试抓取一个网站,如果我 运行 我的代码在我自己的本地服务器上,结果符合预期,但如果我部署到 GCP VM,一些 HTML 标签丢失。我已确保本地和 GCP 上的源代码相同。

有趣的是,如果我更改 headers,那么我会得到更多缺失的标签。到目前为止,我发现这些 headers 效果最好:

headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.141",
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "keep-alive"}

缺少标签的问题是由正在发送的 headers 引起的,还是由 GCP VM 中发生的其他事情引起的?

在评论中回顾故障排除:

  • GCP 本身不会过滤 headers。
  • 根据网站的不同,抓取结果可能会因IP不同而有所不同。
  • 如果您在本地和 GCP 上生成的转储之间遇到任何差异,请确保代码和所有依赖项都相同。

您可以找到有关从 GCP here 抓取的更多信息。