python爬虫案例-爬取西刺免费代理服务器IP等信息
生活随笔
收集整理的這篇文章主要介紹了
python爬虫案例-爬取西刺免费代理服务器IP等信息
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
全棧工程師開發(fā)手冊 (作者:欒鵬)
python教程全解
在使用python爬取網(wǎng)絡(luò)數(shù)據(jù)時(shí),網(wǎng)絡(luò)需要設(shè)置代理服務(wù)器,防止目標(biāo)網(wǎng)站對IP的限制。
http://www.xicidaili.com/
網(wǎng)站實(shí)現(xiàn)了眾多可以使用的代理服務(wù)器,這里寫了一個(gè)爬蟲,爬取其中 國內(nèi)高匿代理IP
使用python3.6環(huán)境
#coding:utf-8 #本實(shí)例用于獲取國內(nèi)高匿免費(fèi)代理服務(wù)器 import urllib from bs4 import BeautifulSoupdef getdata(html): #從字符串中安裝正則表達(dá)式獲取值allproxy = [] # 所有的代理服務(wù)器信息soup = BeautifulSoup(html, 'html.parser')alltr = soup.find_all("tr", class_="")[1:] #獲取tr ,第一個(gè)是標(biāo)題欄,去除for tr in alltr:alltd =tr.find_all('td')oneproxy ={'IP地址':alltd[1].get_text(),'端口號': alltd[2].get_text(),# '服務(wù)器地址': alltd[3].a.get_text(),'是否匿名': alltd[4].get_text(),'類型': alltd[5].get_text(),'速度': alltd[6].div['title'],'連接時(shí)間': alltd[7].div['title'],'存活時(shí)間': alltd[8].get_text(),'驗(yàn)證時(shí)間': alltd[9].get_text(),}allproxy.append(oneproxy)alltr = soup.find_all("tr", class_="odd")[1:] # 獲取tr ,第一個(gè)是標(biāo)題欄,去除for tr in alltr:alltd = tr.find_all('td')oneproxy = {'IP地址': alltd[1].get_text(),'端口號': alltd[2].get_text(),# '服務(wù)器地址': alltd[3].a.get_text(),'是否匿名': alltd[4].get_text(),'類型': alltd[5].get_text(),'速度': alltd[6].div['title'],'連接時(shí)間': alltd[7].div['title'],'存活時(shí)間': alltd[8].get_text(),'驗(yàn)證時(shí)間': alltd[9].get_text(),}allproxy.append(oneproxy)return allproxy#根據(jù)一個(gè)網(wǎng)址,獲取該網(wǎng)址中符合指定正則表達(dá)式的內(nèi)容 def getallproxy(url='http://www.xicidaili.com/nn'):try:# 構(gòu)造 Request headersagent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER'headers = { # 這個(gè)http頭,根據(jù)審查元素,監(jiān)聽發(fā)包,可以查看"Host": "www.xicidaili.com","Referer": "http://www.xicidaili.com/",'User-Agent': agent}request = urllib.request.Request(url, headers=headers) # 創(chuàng)建一個(gè)請求response = urllib.request.urlopen(request) # 獲取響應(yīng)html = response.read() #讀取返回html源碼return getdata(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return []# allproxy = getallproxy() # print(allproxy)總結(jié)
以上是生活随笔為你收集整理的python爬虫案例-爬取西刺免费代理服务器IP等信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#指定窗口显示位置的方法
- 下一篇: 文档基本结构标签的作用