鱼C论坛

 找回密码
 立即注册
查看: 8848|回复: 8

Python爬虫之代理

[复制链接]
发表于 2017-8-15 10:11:32 | 显示全部楼层 |阅读模式

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

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

x


网上找的代理ip试了很多个运行起来都是这样的错。。这是为什么呢。代码写错了吗?


import urllib.request

url='http://www.whatismyip.com.tw'

proxy_support = urllib.request.ProxyHandler({'http':'218.56.132.157:8080'})

opener = urllib.request.build_opener(proxy_support)

urllib.request.install_opener(opener)

response=urllib.request.urlopen(url)

html=response.read().decode(utf-8)

print(html)



运行结果

>>> 
================ RESTART: C:\Users\lenovo\Desktop\mydaili.py ================
Traceback (most recent call last):
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\urllib\request.py", line 1254, in do_open
    h.request(req.get_method(), req.selector, req.data, headers)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1106, in request
    self._send_request(method, url, body, headers)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1151, in _send_request
    self.endheaders(body)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1102, in endheaders
    self._send_output(message_body)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 934, in _send_output
    self.send(msg)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 877, in send
    self.connect()
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 849, in connect
    (self.host,self.port), self.timeout, self.source_address)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\socket.py", line 711, in create_connection
    raise err
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python35\lib\socket.py", line 702, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。



新手上路,希望大神多多指教,不胜感激~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-15 10:23:50 | 显示全部楼层
http://www.whatismyip.com.tw 都打不开了,你还拿它来测试;能变通则变通嘛,换个ip138.com也不一样的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-15 10:34:30 | 显示全部楼层
ba21 发表于 2017-8-15 10:23
http://www.whatismyip.com.tw 都打不开了,你还拿它来测试;能变通则变通嘛,换个ip138.com也不一样的吗?
import urllib.request
import random

url='http://www.ip138.com'

iplist=['110.73.30.176:8123','182.141.46.107:9000','210.76.163.216:8118','121.232.144.4:9000','59.49.129.60:8998','117.90.1.119:9000','121.232.144.143:9000','121.232.148.152:9000','61.234.123.16:82','117.90.5.207:9000','222.92.141.250:80','121.232.147.173:9000','144.255.160.88:808','61.234.123.16:82','182.90.75.137:80']

proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})

opener = urllib.request.build_opener(proxy_support)

opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36X-Requested-With:XMLHttpRequest')]

urllib.request.install_opener(opener)

response=urllib.request.urlopen(url)

html=response.read().decode(utf-8)

print(html)


好像我这样子还是一样的结果呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-15 10:36:30 | 显示全部楼层
免费的代理ip大部分都是有问题或已经失效的,你要是想稳定,建议自己买一个,免费就这样,看运气的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-15 10:37:54 | 显示全部楼层
lumber2388779 发表于 2017-8-15 10:36
免费的代理ip大部分都是有问题或已经失效的,你要是想稳定,建议自己买一个,免费就这样,看运气的

我是第一次接触爬虫,是不是一般写爬虫爬数据都是自己买的代理IP?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-15 10:40:04 | 显示全部楼层
本帖最后由 和vvv 于 2017-8-15 10:43 编辑

如果网址没有问题的话,那么就是代理IP的问题。这个问题以前也遇到过。

使用代理IP,就是必须保证IP的可靠性和稳定性。从网上找的免费代理IP,大多数是不可用的。用来进行爬取实验的话,需要多次尝试,因为你

不知道那个IP有用和IP能够持续使用的时间。可以花一点钱,购买比较稳定的代理IP。

还有一件事,IP代理池和用户代理池结合使用,效果更好。可以看看这个:http://bbs.fishc.com/thread-89594-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-15 10:49:25 | 显示全部楼层
kkkkl 发表于 2017-8-15 10:37
我是第一次接触爬虫,是不是一般写爬虫爬数据都是自己买的代理IP?

不一定,你要是自己用一下而已建议就是免费为主,如果经常使用还是去买一个吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-15 10:54:25 | 显示全部楼层
lumber2388779 发表于 2017-8-15 10:49
不一定,你要是自己用一下而已建议就是免费为主,如果经常使用还是去买一个吧

现在刚开始学,还是以做做练习为主,试了好多到现在也没找到能用的,代码应该没写错吧。不过谢谢大神指点~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-15 11:03:40 | 显示全部楼层
kkkkl 发表于 2017-8-15 10:54
现在刚开始学,还是以做做练习为主,试了好多到现在也没找到能用的,代码应该没写错吧。不过谢谢大神指点 ...

没看到有比较明显的错误,可以看下6楼的连接 看能有帮助不
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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