爬虫为何使用 requests 代理,依然被封堵?

2019-02-15 10:02:18 +08:00
 qqhaodong

我通过爬取西刺代理获取代理 list ,如下面代码

def setProxiesConfig():
  url = 'http://www.xicidaili.com/nn/'
  headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
  }
  web_data = requests.get(url, headers=headers)
  soup = BeautifulSoup(web_data.text, 'lxml')
  ips = soup.find_all('tr')
  ip_list = []
  for i in range(1, len(ips)):
    ip_info = ips[i]
    tds = ip_info.find_all('td')
    ip_list.append(tds[1].text + ':' + tds[2].text)
  print(ip_list)
  return ip_list
#获取随机 IP
def get_random_ip(ip_list):
  proxy_list = []
  for ip in ip_list:
    proxy_list.append('http://' + ip)
  proxy_ip = random.choice(proxy_list)
  proxies = {'http': proxy_ip}
  return proxies

获取列表后,随机取一个 IP{'http':'http://ip:9999'} 然后放到 get 中

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
  }
  ipC=get_random_ip(ip_list)
  web_data = requests.get(URL, headers=headers,proxie= ,verify=False,timeout=10)
  soup = BeautifulSoup(web_data.text, 'lxml')

爬取了 46 个页面的时候还可以操作,但是之后就开始提示 timeout 了,就无论如何也不能爬取了,这是为啥?

3097 次点击
所在节点    Python
11 条回复
zarte
2019-02-15 10:11:21 +08:00
开一个页面休息 5 秒试试
exceloo
2019-02-15 10:13:48 +08:00
随机 sleep,sleep 时间大于 10 秒
omph
2019-02-15 10:17:39 +08:00
time.sleep(randomint(3, 5))
locoz
2019-02-15 10:25:16 +08:00
你确定你这个代码能跑通?最下面 proxie=的位置后面都没东西了
locoz
2019-02-15 10:26:18 +08:00
而且那个参数名叫 proxies,不是 proxie。如果你的代码没问题的话,代理本身超时也是有可能的,注意看报错信息。
SpiderXiantang
2019-02-15 11:38:07 +08:00
西刺就别提了吧
gabon
2019-02-15 11:53:36 +08:00
这种免费代理就是垃圾,基本上不可以用的,最好是买代理。。
dongya
2019-02-15 14:49:19 +08:00
用收费代理吧
zxfgds
2019-02-15 22:25:06 +08:00
建议上 芝麻代理之类的, 靠谱点
zr8657
2019-02-16 09:37:44 +08:00
用之前线上 ip138 之类的检测下是否更换成功啊,免费的 ip 真的都挺垃圾
911speedstar
2019-02-18 18:44:03 +08:00
代理池要不断测试更新

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/535175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX