我正在尝试抓取特定网站的子页面。我使用了requests和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。
谢谢!
发布于 2021-09-28 12:25:04
解决方案是增加一个延迟,但要大于5秒。我体验过它,似乎在加载了5个页面后,我被阻止了,我必须等待至少10分钟才能重试。因此,我在循环中添加了一个计数器,在它达到5之后,我使用了time.sleep() 10分钟,然后重新启动了计数器。它很慢,但它是有效的。不过还是要感谢你的建议!
https://stackoverflow.com/questions/68957753
复制相似问题