鱼C论坛

 找回密码
 立即注册
查看: 2293|回复: 5

[已解决]爬虫爬取用的代理ip大部分不可用,大家如何解决的?

[复制链接]
发表于 2017-7-14 14:39:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习写了翻译软件,中间使用代理ip,如下代码获取代理ip,结果获取的大部分验证都不能用,大家都怎么使用代理ip的?

  1. def get_proxy_ip(index = 'index'):
  2.         """
  3.         随机获取ip地址列表
  4.         :param index: 页码索引
  5.         :return:
  6.         """
  7.         # url = 'http://www.whatismyip.com.tw'  # 查看真实ip网址
  8.         url = 'http://www.66ip.cn/' + str(index) + '.html'
  9.         req = Request(url)
  10.         req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101  Firefox/54.0')
  11.         response = urlopen(req).read()
  12.         # print response
  13.         # print chardet.detect(response)#获取编码格式

  14.         # 创建匹配ip和端口的规则,网站格式:<tr><td>180.110.6.137</td><td>808</td>
  15.         p = re.compile(r'((?:(?:[01]?\d?\d|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d?\d|2[0-4]\d|25[0-5]))</td><td>(\d+)')
  16.         ip_list = p.findall(response)
  17.         # print ip_list

  18.         while True:
  19.                 ip_port = random.choice(ip_list)  # 随机选取列表中的一个IP地址和端口
  20.                 # print ip_port

  21.                 # 检查ip是否可用,如不可用,删除该ip并更换一个
  22.                 if not check_proxy_ip(ip_port):
  23.                         ip_list.remove(ip_port)  # 删除这个IP地址
  24.                 else:
  25.                         break

  26.         return ip_port

  27. def check_proxy_ip(ip_port):
  28.         """
  29.         检查代理ip是否可用
  30.         :return:
  31.         """
  32.         try:
  33.                 telnetlib.Telnet(ip_port[0], port = ip_port[1], timeout = 20)
  34.         except:
  35.                 print 'The IP is not available!'
  36.                 return False
  37.         else:
  38.                 print 'The IP is available!'
  39.                 print ('ip port', ip_port)
  40.                 return True

复制代码
最佳答案
2017-7-14 20:53:29
http://cn-proxy.com/ 这个网站上的代理用过几个 倒是都能用,不知道你那个网站代理IP的咋样
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-14 15:06:16 | 显示全部楼层
你还把超时时间设置那么长,等的不急么?

反正我是不用代理了,免费代理都是垃圾

只能把爬虫速度调慢一点了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 20:53:29 | 显示全部楼层    本楼为最佳答案   
http://cn-proxy.com/ 这个网站上的代理用过几个 倒是都能用,不知道你那个网站代理IP的咋样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 21:54:31 | 显示全部楼层
可以买,好的IP也只能买
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 12:00:56 | 显示全部楼层
gopythoner 发表于 2017-7-14 15:06
你还把超时时间设置那么长,等的不急么?

反正我是不用代理了,免费代理都是垃圾

哦,简单测试一下而已,已经改了,是很麻烦,抓出来的10个有9个都不能用 ~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 12:03:52 | 显示全部楼层
当时就吓傻了 发表于 2017-7-14 20:53
http://cn-proxy.com/ 这个网站上的代理用过几个 倒是都能用,不知道你那个网站代理IP的咋样

好的,多谢,我试试看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-28 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表