requests模块高级操作之proxies
生活随笔
收集整理的這篇文章主要介紹了
requests模块高级操作之proxies
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、代理proxy
概念:代理服務器
作用:請求和響應的轉發(fā)
免費代理
www.goubanjia.com
快代理
西祠代理
代理精靈(付費)
匿名度:
透明:對方服務器知道你使用代理也知道你真實ip
匿名: 對方知道你使用代理但不知道你真實ip
高匿: 對方什么都不知道
類型:
http: 只能攔截或轉發(fā)http請求
https:只能攔截或者轉發(fā)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)
總結
以上是生活随笔為你收集整理的requests模块高级操作之proxies的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新一代互联网传输协议QUIC
- 下一篇: 二叉树的遍历