网站首页 > 技术教程 正文
使用同一个ip去爬取同一个网站的网页,可能会被屏蔽,这个时候,我们就可以使用代理服务器来解决这个问题。网上的免费获取代理服务器地址的网站,大脚可以自行搜索,一般可以用他们提供的免费代理服务器地址,当然如果有钱的话,用付费的可能会靠谱一点。
那么怎么利用这些个地址呢,我的建议是可以自己写一个爬虫(后面会写一个源码供大家参考),然后把提供代理服务器地址的网站的ip地址一个一个爬取出来,存放到一个文件,或者数据库,可以存在MongoDB里面。要用的时候,读取出来,就可以用来设置代理服务器地址了。代理服务器地址的更换、检验可用与否等都可以通过代码整合起来调用。
那么具体怎么设置呢,其实非常简单。这里我们主要讲urllib和requests两种方法的代理服务器设置,直接看代码,很容易就懂了。
urllib设置方法
import urllib.request
def use_proxy(proxy_addr,url):
proxy= urllib.request.ProxyHandler({‘http’:proxy_addr})
opener = urllib.request.build_opener(proxy)
request = urllib.request.Request(url)
response = opener.open(request)
print(response.headers)
data = response.read().decode(‘utf-8’)
return data
proxy_addr=“183.148.140.162:9999” #代理地址
data=use_proxy(proxy_addr,”http://www.baidu.com“)
print(len(data))
如果抛出urllib.error.URLError: 的异常,一般是代理地址太慢或者已经失效的问题,可以更换代理ip地址解决。
requests设置代理的方法更简单,post方法也是一样。
import requests
proxies = {
‘http’: ‘http://61.176.223.7:58822’
} #代理地址
r = requests.get(“http://www.baidu.com“, proxies=proxies)
print(r.headers)
注:若代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/语法:
proxies = { “http”: “http://user:pass@10.10.1.10:3128/“, }
由于免费的代理服务器地址都是不稳定的,很多都不能用或者不稳定,或者很快就失效了,所以如果有钱还是可以用付费代理ip地址会比较稳定啦。建议还是用requests方式进行请求,相对urllib的方法,比较方便。
- 上一篇: 如何查询代理服务器地址?
- 下一篇: 代理服务器拒绝连接怎么办?解决方案如下
猜你喜欢
- 2024-11-19 ubuntu怎么搭建代理服务器?
- 2024-11-19 使用代理服务器是否安全?
- 2024-11-19 Windows下MQTT代理服务器的搭建
- 2024-11-19 怎么办?设置HTTP代理IP后不能上网了?
- 2024-11-19 在Git中设置和管理代理服务器
- 2024-11-19 HongYuan MetaTrader 4 代理服务器设置方法和具体步骤
- 2024-11-19 代理服务器有哪些类型?哪种最适合你?
- 2024-11-19 Maven设置代理服务器http和https
- 2024-11-19 CDN代理服务器获取访问者真实IP(建议收藏)
- 2024-11-19 游戏工作室如何用代理IP防止封号?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)