一、代理proxy
概念:代理服务器
作用:请求和响应的转发
免费代理
www.goubanjia.com
快代理
西祠代理
代理精灵(付费)
匿名度:
透明:对方服务器知道你使用代理也知道你真实ip
匿名: 对方知道你使用代理但不知道你真实ip
高匿: 对方什么都不知道
类型:
http: 只能拦截或转发http请求
https:只能拦截或者转发https的请求
付费代理:
代理池:列表中存在多个字典每一个字典{‘http’:ip:port}
使用:get/post(proxies = {‘http’:’ip:port’})
import requests import random from lxml import etree header={ 'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1' }
#定义获取ip的函数 def get_proxy(url): proxies_list = [] page_text = requests.get(url,headers=header).text tree = etree.HTML(page_text) p_list = tree.xpath('//body//text()') for p in p_list: dic = { 'https':p } proxies_list.append(dic) return proxies_list url = 'https://www.baidu.com/s?wd=ip' #设定代理 #构建一个代理池 proxies_list = get_proxy('http://t.11jsq.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=15&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=2') page_text = requests.get(url,headers=header,proxies = random.choice(proxies_list)).text with open('ip.html','w',encoding="utf-8") as f: f.write(page_text)