【问题标题】:Web scraping - page is not loading after 5-6 requests loaded网页抓取 - 加载 5-6 个请求后页面未加载
【发布时间】:2021-08-27 18:07:56
【问题描述】:

我正在尝试抓取特定网站的子页面。我正在使用请求和 bs4。我将页面存储在用于循环的列表中。这些脚本适用于其他网站,所以我认为我的页面本身存在一些问题。我无法使用浏览器访问该页面,或者只能在有限的时间内(几秒钟)访问。我已经尝试了我所有的浏览器(Chrome、Firefox、Edge、Explorer)删除了所有 cookie 和其他浏览数据等...) 我正在使用标题:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36',
    "Upgrade-Insecure-Requests": "1", "DNT": "1",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5",
    "Accept-Encoding": "gzip, deflate"}

这是请求页面的代码:

cz_link= requests.get(cz_page,timeout=10, verify=False,headers=headers)

其中“cz_page”是列表中包含我要解析的页面的项目。

加载 5 或 6 个页面后,下一个页面将无法加载。

我试过“https://downforeveryoneorjustme.com/”来检查页面是否正常,结果是“只有我自己。”

无论我无法在浏览器中加载网站,是否有任何方法可以通过 python 请求访问页面?

我的下一个尝试是在启用 VPN 的情况下运行脚本,但我很好奇是否有其他解决方案,当我需要运行此脚本时,我无法一直使用 VPN。

谢谢!

【问题讨论】:

  • 我也尝试了不同的 DNS 设置。
  • 如果您还没有喜欢from time import sleep,然后在循环期间或循环结束时不喜欢sleep(5),请尝试在循环之间延迟。

标签: html web-scraping beautifulsoup python-requests


【解决方案1】:

解决方案是添加延迟,但大于 5 秒。我体验过它,似乎在加载 5 页后我被阻止了,我不得不等待至少 10 分钟才能重试。 所以我在循环中添加了一个计数器,在它达到 5 后,我使用了 time.sleep() 10 分钟并重新启动了计数器。 它很慢,但它有效。 不过感谢您的建议!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-18
    • 2017-09-04
    • 2015-10-07
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    相关资源
    最近更新 更多