希望有人知道答案。
我试着刮一个特定的网站。
问题是,requests.get(url)非常快速地抓取所有东西。
所以我被堵住了。
它们是减缓requests.get(url)的一种方法吗?
谢谢你的帮助。
from bs4 import BeautifulSoup
import requests
url = 'website.fr'
response = requests.get(url)
print(response)打印结果:当你使用这个网站时,你的浏览器或行为让我们觉得你可能是个机器人。解决下面的captcha以继续浏览站点.
发布于 2021-12-09 21:37:50
您应该配置一个超时,看看刮板是否适合您。
r = requests.get('https://github.com', timeout=5)https://docs.python-requests.org/en/latest/user/advanced/#timeouts
发布于 2021-12-09 21:31:41
Note虽然没有关于url的信息,但是很难复制
第一步可能是向请求中添加一些headers --这不会减慢速度,但会显示“将有浏览器”。替代方法是使用selenium。
示例
from bs4 import BeautifulSoup
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-61acac03-6279b8a6274777eb44d81aae",
"X-Client-Data": "CJW2yQEIpLbJAQjEtskBCKmdygEIuevKAQjr8ssBCOaEzAEItoXMAQjLicwBCKyOzAEI3I7MARiOnssB" }
url = 'https://www.france.fr/fr'
response = requests.get(url, headers = headers)
print(response)输出
<Response [200]>如果要迭代urls,还可以使用time模块添加相同的延迟:
from bs4 import BeautifulSoup
import requests, time
...
for url in urls:
time.sleep(3)
response = requests.get(url, headers = headers)
...https://stackoverflow.com/questions/70296454
复制相似问题