最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬取代理ip的示例

 更新時(shí)間:2020年12月18日 17:14:37   作者:Super~me  
這篇文章主要介紹了python爬取代理ip的示例,幫助大家更好的利用python進(jìn)行爬蟲,感興趣的朋友可以了解下

要寫爬蟲爬取大量的數(shù)據(jù),就會(huì)面臨ip被封的問題,雖然可以通過設(shè)置延時(shí)的方法來延緩對(duì)網(wǎng)站的訪問,但是一旦訪問次數(shù)過多仍然會(huì)面臨ip被封的風(fēng)險(xiǎn),這時(shí)我們就需要用到動(dòng)態(tài)的ip地址來隱藏真實(shí)的ip信息,如果做爬蟲項(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)目用來學(xué)習(xí)的話可以參考下本篇文章。

簡(jiǎn)述

本篇使用簡(jiǎn)單的爬蟲程序來爬取免費(fèi)ip網(wǎng)站的ip信息并生成json文檔,存儲(chǔ)可用的ip地址,寫其它爬取項(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/來作為數(shù)據(jù)源,通過對(duì)http://www.baidu.com/的相應(yīng)來判斷ip的可使用性。引用lxml模塊來對(duì)網(wǎng)頁數(shù)據(jù)進(jìn)行提取,當(dāng)然也可以使用re模塊來進(jìn)行匹配提取,這里只使用lxml模塊對(duì)數(shù)據(jù)進(jìn)行提取。
訪問https://www.xicidaili.com/nn/數(shù)據(jù)源,并且啟動(dòng)Fiddler對(duì)瀏覽器數(shù)據(jù)進(jìn)行監(jiān)聽,我這里瀏覽器采用的是Proxy SwitchyOmega插件來配合Fiddler進(jìn)行使用,在Fiddler找到/nn/*數(shù)據(jù)查看User-Agent信息并復(fù)制下來作為我們?cè)L問的頭文件。如圖:

引入模塊

import requests
from lxml import etree
import time
import 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'] = type
        proxies['host'] = host
        proxies['port'] = port
        proxiesJson = json.dumps(proxies)
        with open('verified_y.json', 'a+') as f:
          f.write(proxiesJson + '\n')
        print("已寫入:%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): #選取前十頁數(shù)據(jù)使用
    proxy_list = get_all_proxy(i)
    time.sleep(20)
    print(valid_proxy_list)

生成的json文件:

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

相關(guān)文章

  • Python數(shù)據(jù)容器dict(字典)的實(shí)現(xiàn)

    Python數(shù)據(jù)容器dict(字典)的實(shí)現(xiàn)

    本文主要介紹了Python數(shù)據(jù)容器dict(字典)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 淺析Python編寫函數(shù)裝飾器

    淺析Python編寫函數(shù)裝飾器

    這篇文章主要介紹了Python編寫函數(shù)裝飾器的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python中Lambda表達(dá)式詳解

    python中Lambda表達(dá)式詳解

    在本篇文章里小編給大家整理的是關(guān)于python中Lambda表達(dá)式的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-11-11
  • Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的QQ截圖

    Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的QQ截圖

    大家好,本篇文章主要講的是Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的QQ截圖,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下的相關(guān)資料
    2022-02-02
  • Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理

    Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理

    這篇文章主要為大家介紹了Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • numpy中的converters和usecols用法詳解

    numpy中的converters和usecols用法詳解

    本文主要介紹了numpy中的converters和usecols用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 解決Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯(cuò)誤的問題

    解決Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯(cuò)誤的問題

    這篇文章主要介紹了Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯(cuò)誤的解決辦法,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 使用PyCharm官方中文語言包漢化PyCharm

    使用PyCharm官方中文語言包漢化PyCharm

    這篇文章主要介紹了使用PyCharm官方中文語言包漢化PyCharm,需要的朋友可以參考下
    2020-11-11
  • Python常用擴(kuò)展插件使用教程解析

    Python常用擴(kuò)展插件使用教程解析

    這篇文章主要介紹了Python常用擴(kuò)展插件使用教程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python讀寫yaml文件

    Python讀寫yaml文件

    這篇文章主要介紹了Python讀寫yaml文件,yaml?是專門用來寫配置文件的語言,非常簡(jiǎn)潔和強(qiáng)大,之前用ini也能寫配置文件,有點(diǎn)類似于json格式,下面關(guān)于Python讀寫yaml文件的詳細(xì)資料,需要的小伙伴可以參考一下
    2022-03-03

最新評(píng)論

仁化县| 宝兴县| 龙里县| 喀喇| 德令哈市| 景宁| 镇雄县| 吐鲁番市| 肇庆市| 新密市| 临泉县| 同德县| 田东县| 林口县| 隆林| 通城县| 印江| 辰溪县| 自治县| 灵丘县| 商水县| 拉孜县| 鹰潭市| 乐业县| 开平市| 陆河县| 唐河县| 广宁县| 蓬莱市| 固原市| 湾仔区| 康平县| 东海县| 阿鲁科尔沁旗| 凉城县| 青阳县| 辉县市| 抚松县| 陈巴尔虎旗| 古蔺县| 平塘县|