很多人都是在用python的request发送请求,毕竟python是当下比较流行的程序语言之一,以下是python使用代理IP发送请求的一些笔记,希望对新手朋友们有所帮助。
一、获取代理IP
很多初学者喜欢爬取网上的免费代理IP来使用,正规的项目中一般是采购高质量代理IP来使用的,通常是通过API接口来获取代理IP,以站大爷代理IP为例。
import requests api_url = 'http://www.***.com/ShortProxy/GetIP/?api=实例ID&akey=akey&count=5×pan=3&type=1' #站大爷代理的API提取链接,开通产品后在后台可以生成 proxy_ip = requests.get(api_url).text #请求API提取链接,获取http代理IP列表 proxy_list = proxy_ip.split('\r\n') for proxy in proxy_list: #遍历http代理IP列表 num += 1 proxies = { 'http': 'http://'+proxy, 'https': 'http://' + proxy } print(proxies)
二、使用代理IP
很多人proxies只写一个协议,在访问不同的网站时很容易报错,或者会使用本地上网IP向目标网站发送请求而不自知。
import requests proxies = { "http": "http://168.168.168.168:88888", "https": "http://168.168.168.168:88888" } r = requests.get('https://www.zdaye.com/',proxies=proxies)
如果是访问http网站,则会采用http协议;如果是访问https网站,则会采用https协议。这里proxies两种协议都写了,发送请求时会根据访问的网站自动选择。
三、验证代理IP
很多人不确定代理IP是否生效,是使用代理IP发送的请求,还是本地上网IP发送的请求。我们可以访问一个查询IP的网站来进行验证。
url = "http://httpbin.org/ip" proxies = { 'http':'http://168.168.168.168:88888', 'https':'http://168.168.168.168:88888' } headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50' } try: resp = requests.get(url,headers=headers,proxies=proxies,timeout=10) print(resp.text) except Exception as e: print(f"请求失败,代理IP无效!{e}")
如果请求成功了,会打印出请求返回的内容,如果代理IP生效了,返回的内容中的IP是当前使用的代理IP;如果proxies只写了一个http或https协议,返回的内容中的IP是本地上网IP,说明没有通过代理IP请求网站。如果请求失败了,说明代理IP没有生效,会返回“请求失败,代理IP无效!”。