900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 爬虫小插曲:关于代理参数-proxies那些事

爬虫小插曲:关于代理参数-proxies那些事

时间:2021-05-10 07:34:34

相关推荐

爬虫小插曲:关于代理参数-proxies那些事

代理参数-proxies

定义及分类

【1】定义 : 代替你原来的IP地址去对接网络的IP地址【2】作用 : 隐藏自身真实IP,避免被封

普通代理

【1】获取代理IP网站快代理、全网代理、代理精灵、... ...【2】参数类型proxies = {'协议':'协议://IP:端口号' }proxies = {'http':'http://IP:端口号','https':'https://IP:端口号',}

普通代理 - 示例

使用快代理中的免费IP地址测试是否可用:

# 使用免费普通代理IP访问测试网站: /getimport requestsurl = '/get'headers = {'User-Agent':'Mozilla/5.0'}# 定义代理,在代理IP网站中查找免费代理IPproxies = {'http':'http://182.116.239.37:9999','https':'https://182.116.239.37:9999'}html = requests.get(url,proxies=proxies,headers=headers,timeout=5).textprint(html)

如果我们运行这个代码的话,肯定是会报错的,因为并不是所有的IP地址都是有效的,所以会报错

代理IP池建立

我们使用的是快代理这个网站的IP地址,我们去花钱购买IP地址,然后在去运行测试代码,但是,我就不在这买了,如果有需要的自己去网上看一下快代理IP地址购买及使用,我这里就是测试你购买的IP地址是否可用

"""建立开放代理的代理ip池"""import requestsclass ProxyPool:def __init__(self):# api_url地址,注意,这个是购买快代理IP地址之后的地址,这个填自己的self.api_url = '/api/getproxy/?orderid=999955248138592&num=20&protocol=2&method=2&an_ha=1&sep=1'# 测试IP地址可否用的网站self.test_url = '/get'# 请求头self.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}def get_proxy(self):# 响应体html = requests.get(url=self.api_url, headers=self.headers).text# proxy_list: ['1.1.1.1:8888','2.2.2.2:9999,...]proxy_list = html.split('\r\n')for proxy in proxy_list:# 测试proxy是否可用self.test_proxy(proxy)def test_proxy(self, proxy):"""测试1个代理ip是否可用"""proxies = {'http' : 'http://{}'.format(proxy),'https': 'https://{}'.format(proxy),}# 我们用try方法,测试IP地址,如果测试出不可用的话,他不会报错,不会导致下一个能用的也测试不了try:resp = requests.get(url=self.test_url, proxies=proxies, headers=self.headers, timeout=3)if resp.status_code == 200:# \033 这个就是给字体价格颜色print(proxy,'\033[31m可用\033[0m')else:print(proxy,'不可用')except Exception as e:print(proxy, '不可用')def run(self):self.get_proxy()if __name__ == '__main__':spider = ProxyPool()spider.run()

私密代理+独享代理

【1】语法结构proxies = {'协议':'协议://用户名:密码@IP:端口号' }【2】示例proxies = {'http':'http://用户名:密码@IP:端口号','https':'https://用户名:密码@IP:端口号',}

私密代理+独享代理 - 示例代码

import requestsurl = '/get'proxies = {'http': 'http://309435365:szayclhp@106.75.71.140:16816','https':'https://309435365:szayclhp@106.75.71.140:16816',}headers = {'User-Agent' : 'Mozilla/5.0',}html = requests.get(url,proxies=proxies,headers=headers,timeout=5).textprint(html)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。