国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python爬取代理ip的示例

瀏覽:5日期:2022-07-01 17:33:38

要寫(xiě)爬蟲(chóng)爬取大量的數(shù)據(jù),就會(huì)面臨ip被封的問(wèn)題,雖然可以通過(guò)設(shè)置延時(shí)的方法來(lái)延緩對(duì)網(wǎng)站的訪問(wèn),但是一旦訪問(wèn)次數(shù)過(guò)多仍然會(huì)面臨ip被封的風(fēng)險(xiǎn),這時(shí)我們就需要用到動(dòng)態(tài)的ip地址來(lái)隱藏真實(shí)的ip信息,如果做爬蟲(chóng)項(xiàng)目,建議選取一些平臺(tái)提供的動(dòng)態(tài)ip服務(wù),引用api即可。目前國(guó)內(nèi)有很多提供動(dòng)態(tài)ip的平臺(tái),普遍價(jià)格不菲,而對(duì)于只想跑個(gè)小項(xiàng)目用來(lái)學(xué)習(xí)的話可以參考下本篇文章。

簡(jiǎn)述

本篇使用簡(jiǎn)單的爬蟲(chóng)程序來(lái)爬取免費(fèi)ip網(wǎng)站的ip信息并生成json文檔,存儲(chǔ)可用的ip地址,寫(xiě)其它爬取項(xiàng)目的時(shí)候可以從生成的json文檔中提取ip地址使用,為了確保使用的ip地址的有效性,建議對(duì)json文檔中的ip現(xiàn)爬現(xiàn)用,并且在爬取時(shí)對(duì)ip有效性的時(shí)間進(jìn)行篩選,只爬取時(shí)長(zhǎng)較長(zhǎng)、可用的ip地址存儲(chǔ)。

實(shí)現(xiàn)

使用平臺(tái)https://www.xicidaili.com/nn/來(lái)作為數(shù)據(jù)源,通過(guò)對(duì)http://www.baidu.com/的相應(yīng)來(lái)判斷ip的可使用性。引用lxml模塊來(lái)對(duì)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行提取,當(dāng)然也可以使用re模塊來(lái)進(jìn)行匹配提取,這里只使用lxml模塊對(duì)數(shù)據(jù)進(jìn)行提取。訪問(wèn)https://www.xicidaili.com/nn/數(shù)據(jù)源,并且啟動(dòng)Fiddler對(duì)瀏覽器數(shù)據(jù)進(jìn)行監(jiān)聽(tīng),我這里瀏覽器采用的是Proxy SwitchyOmega插件來(lái)配合Fiddler進(jìn)行使用,在Fiddler找到/nn/*數(shù)據(jù)查看User-Agent信息并復(fù)制下來(lái)作為我們?cè)L問(wèn)的頭文件。如圖:

python爬取代理ip的示例

引入模塊

import requestsfrom lxml import etreeimport timeimport json

獲取所有數(shù)據(jù)

def get_all_proxy(page): url = ’https://www.xicidaili.com/nn/%s’%page headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36’, } response = requests.get(url, headers=headers) html_ele = etree.HTML(response.text) ip_eles = html_ele.xpath(’//table[@id='ip_list']/tr/td[2]/text()’) port_ele = html_ele.xpath(’//table[@id='ip_list']/tr/td[3]/text()’) print(ip_eles) proxy_list = [] for i in range(0,len(ip_eles)): check_all_proxy(ip_eles[i],port_ele[i]) return proxy_list

對(duì)數(shù)據(jù)進(jìn)行篩選:

def check_all_proxy(host,port): type = ’http’ proxies = {} proxy_str = '%s://@%s:%s' % (type, host, port) valid_proxy_list = [] url = ’http://www.baidu.com/’ proxy_dict = { ’http’: proxy_str, ’https’: proxy_str } try: start_time = time.time() response = requests.get(url, proxies=proxy_dict, timeout=5) if response.status_code == 200:end_time = time.time()print(’代理可用:’ + proxy_str)print(’耗時(shí):’ + str(end_time - start_time))proxies[’type’] = typeproxies[’host’] = hostproxies[’port’] = portproxiesJson = json.dumps(proxies)with open(’verified_y.json’, ’a+’) as f: f.write(proxiesJson + ’n’)print('已寫(xiě)入:%s' % proxy_str)valid_proxy_list.append(proxy_str) else:print(’代理超時(shí)’) except: print(’代理不可用--------------->’+proxy_str)

運(yùn)行程序:

if __name__ == ’__main__’: for i in range(1,11): #選取前十頁(yè)數(shù)據(jù)使用 proxy_list = get_all_proxy(i) time.sleep(20) print(valid_proxy_list)

生成的json文件:

python爬取代理ip的示例

以上就是python爬取代理ip的示例的詳細(xì)內(nèi)容,更多關(guān)于python爬取代理ip的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 精品国产品国语在线不卡丶 | 日本美女性爱 | 真人一级毛片国产 | 国产最爽的乱淫视频国语对 | 永久精品免费影院在线观看网站 | 亚洲男人网 | 国模偷拍在线观看免费视频 | 亚洲小视频在线观看 | 久久www免费人成_看片高清 | 成人三级做爰在线观看男女 | 亚洲在线日韩 | 免费又黄又爽的视频 | 日本免费人成黄页在线观看视频 | 国产精品爱久久久久久久三级 | 男女性关系视频免费观看软件 | 欧美成人黄色网 | 国产成人a大片大片在线播放 | 精品国产视频在线观看 | 亚洲欧美日韩精品久久亚洲区色播 | 全免费a级毛片免费看不卡 全免费毛片在线播放 | 碰碰碰人人澡人人爱摸 | 99精品一区二区三区 | 欧美成人第一页 | 日韩美女一区二区三区 | 欧美精品一区二区三区视频 | 高清性色生活片欧美在线 | 亚洲欧美一区二区三区综合 | 国产日产久久高清欧美一区 | 国产成人麻豆精品 | 国内成人免费视频 | 毛片啪啪视频 | 色琪琪一本到影院 | 97国产在线播放 | 亚洲欧美视频一区二区三区 | 成人免费在线 | 亚洲日本一区二区三区 | 日韩99精品| 国产成人午夜精品5599 | 国产亚洲精品一区二区在线播放 | 美女被免费网站在线视频软件 | 日美三级 |