生活随笔
收集整理的這篇文章主要介紹了
06-代理爬虫实战
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
爬蟲代理概述
- 在爬蟲中,所謂的代理指的就是代理服務器
- 代理服務器的作用就是用來轉發請求和響應
- 如果我們的爬蟲在短時間內對服務器發起高頻的請求,那么服務器會檢測到這樣的一個異常行為請求,就會將該請求對應設備的ip進行封禁,設備就無法對服務器再次進行請求發送了
- 使用代理服務器進行信息爬取,可以很好的解決IP限制的問題
一般模式: 客戶端 ----> 服務器端
代理模式: 客戶端----> 代理 -----> 服務器端 - 我們瀏覽信息的時候,先向代理服務器發出請求,然后又代理服務向互聯網獲取信息,再返回給我們
- 代理服務器分為不同的匿名度
- 透明代理:如果使用了該形式的代理,服務器端知道你使用了代理機制也知道你真是ip
- 匿名代理:知道你使用代理,但是不知道你的真實ip
- 高匿代理:不知道你使用代理,也不知道你真實ip
- 代理的類型:
- https: 代理只能轉發https協議的請求
- http:轉發http的請求
- 購買代理服務器:
- 快代理
- 西祠代理
- goubanjia
- 代理精靈(推薦):http://http.zhiliandaili.cn
import requests
from lxml
import etree
import randomheaders
= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}
url
= "http://t.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=5&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15"
page_text
=requests
.get
(url
,headers
=headers
).text
tree
=etree
.HTML
(page_text
)
proxy_list
= tree
.xpath
('//body//text()')
http_proxy
= []
for proxy
in proxy_list
:dic
= {"https":proxy
} http_proxy
.append
(dic
)
print(http_proxy
)
import requests
from lxml
import etree
import randomheaders
= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}
url
= "http://ip.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=10&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15"
page_text
=requests
.get
(url
,headers
=headers
).text
tree
=etree
.HTML
(page_text
)
proxy_list
= tree
.xpath
('//body//text()')
http_proxy
= []
for proxy
in proxy_list
:dic
= {"https":proxy
} http_proxy
.append
(dic
)
print(http_proxy
)
url2
= "https://weixin.sogou.com/weixin?query=風景&page=%d"+"&ie=utf8"
for pg
in range(1,100):new_url
= format(url2
%pg
) print(new_url
)html2
= requests
.get
(url
=new_url
,headers
=headers
,proxies
=random
.choice
(http_proxy
)).texttree2
= etree
.HTML
(html2
)title
= tree2
.xpath
("//div[@class='txt-box']/h3/a//text()")print(title
)nr
= tree2
.xpath
("//div[@class='txt-box']/p//text()")print(nr
)
使用代理爬取搜狗商品
import requests
from lxml
import etree
import randomheaders
= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}
url
= "http://t.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=200&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15"
page_text
=requests
.get
(url
,headers
=headers
).text
tree
=etree
.HTML
(page_text
)
proxy_list
= tree
.xpath
('//body//text()')
http_proxy
= []
for proxy
in proxy_list
:dic
= {"https":proxy
} http_proxy
.append
(dic
)
print(http_proxy
)url2
= "https://gouwu.sogou.com/shop?ie=utf8&query=2020&p=40251501&sourceid=sr_bpage&page=%d"
for pg
in range(1,100):new_url
= format(url2
%pg
) print(new_url
)html2
= requests
.get
(url
=new_url
,headers
=headers
,proxies
=random
.choice
(http_proxy
)).texttree2
= etree
.HTML
(html2
)title
= tree2
.xpath
('//h4/a//text()')for title1
in title
:print(title1
)
總結
以上是生活随笔為你收集整理的06-代理爬虫实战的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。