我正在尝试刮擦足球网Transfermarkt。我正在尝试进行网页抓取,但是每次尝试时,我都会在第7个请求时被屏蔽。
我尝试更改标题和代理,但是我总是得到相同的结果。
这些是我做过的一些“实验”。这些代理分开工作。
user_agent_list = [here are a lot of user agents]
headers = {'User-Agent':random.choice(user_agent_list)}
url='https://www.transfermarkt.es/jadon-sancho/profil/spieler/14'
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://121.121.117.227:3128'})
print(r)
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://121.121.117.227:3128'})
print(r)
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://121.121.117.227:3128'})
print(r)
#Changing proxy
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://177.131.22.186:80'})
print(r)
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://177.131.22.186:80'})
print(r)
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://177.131.22.186:80'})
print(r)
#Here I get blocked
r=requests.get(url,headers='User-Agent':random.choice(user_agent_list),proxies={'http': 'http://177.131.22.186:80'})
print(r)
#And continue trying with another examples
我必须指出代理已经过验证,因此需要单独工作。我从版画中得到的是直到我被阻止为止。我应该如何解决?我应该从get中更改另一个参数吗?
答案 0 :(得分:2)
脚本的主要问题是您尝试使用https
代理连接到http only
服务器。您需要为https
设置代理:
proxies={'https': 'https://x.y.z.a:b'}
在您的情况下,您仅设置http
代理,因此https
请求不会通过它。
请注意,您在示例中提供的代理服务器不会 支持
https
。