溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python 爬蟲 批量獲取代理ip的實(shí)例代碼

發(fā)布時(shí)間:2020-10-03 20:54:16 來源:腳本之家 閱讀:185 作者:mzbqhbc12 欄目:開發(fā)技術(shù)

實(shí)例如下所示:

import urllib.request
import os, re,sys,time
try:
 from StringIO import StringIO
except ImportError:
 from io import StringIO
loca = re.compile(r"""ion":"\D+", "ti""")
#偽裝成瀏覽器
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'}
class Getip():
 def __init__(self,diqu):
  self.ur ={"xicidaili國內(nèi)普通代理 --1線":"http://www.xicidaili.com/nt/",
        
    "ip84國內(nèi)普通代理 --2線":'http://www.ip84.com/dlpn-http/',
        
    'xicidaili國內(nèi)高匿名代理 --1線':'http://www.xicidaili.com/nn/',
       
    'ip84國內(nèi)高匿名代理 --2線':'http://www.ip84.com/dlgn-http/',
    
    'xicidaili國外高匿名代理 --1線':'http://www.xicidaili.com/wn/',
    
    'ip84國外高匿名代理 --2線':'http://www.ip84.com/gwgn-http/',
    'xicidaili國外普通代理 --1線':'http://www.xicidaili.com/wt/',
    'haodailiip國內(nèi)混合代理 --3線':'http://www.haodailiip.com/guonei/',
    'haodailiip國外混合代理 --3線':'http://www.haodailiip.com/guoji/',
        }
  self.diqu = diqu
 
 def urlopen(self,url):
  global header
  try:
   req = urllib.request.Request(url, None, header)
   res=urllib.request.urlopen(req)
  
   return res
  except:
   pass
 def getip(self,ren):
  '''url = "http://proxy.ipcn.org/proxylist.html"#代理IP頁面
  ip_proxy_re = re.compile(r"""\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,}""")# 直接匹配 xxx.xxx.xxx.xxx:xxxx'''
  
  url = self.ur[self.diqu]+str(ren)
  
  ip_proxy_re = re.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*</td>\s*<td>\s*(\d{1,})\s*</td>\s*<[^\u4E00-\u9FA5]+>([\u4E00-\u9FA5]*\s*[\u4E00-\u9FA5]*\s*[\u4E00-\u9FA5]*)\s*<')
  #################################通用正則匹配的  格式 是  (IP,端口,地區(qū)) 地區(qū)有可能包含換行和空格
  try:
   data = self.urlopen(url).read().decode('utf-8')
  except:
   return None
  
  self.rel = []
  
  ip = ip_proxy_re.findall(data)
  ##########返回的IP 就是 正則匹配的結(jié)果(IP,端口,地區(qū)) 地區(qū)有可能包含換行和空格
  
  return ip
  
if __name__ == '__main__':
 g=Getip("xicidaili國內(nèi)普通代理 --1線")
 import pprint
 for x in range(4):
  ips = g.getip(1)
  print('獲取到ip地址一共:',len(ips))
  pprint.pprint(ips)

以上這篇python 爬蟲 批量獲取代理ip的實(shí)例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI