實例如下所示:

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國內普通代理 --1線":"http://www.xicidaili.com/nt/",
"ip84國內普通代理 --2線":'http://www.ip84.com/dlpn-http/',
'xicidaili國內高匿名代理 --1線':'http://www.xicidaili.com/nn/',
'ip84國內高匿名代理 --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國內混合代理 --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,端口,地區) 地區有可能包含換行和空格
try:
data = self.urlopen(url).read().decode('utf-8')
except:
return None
self.rel = []
ip = ip_proxy_re.findall(data)
##########返回的IP 就是 正則匹配的結果(IP,端口,地區) 地區有可能包含換行和空格
return ip
if __name__ == '__main__':
g=Getip("xicidaili國內普通代理 --1線")
import pprint
for x in range(4):
ips = g.getip(1)
print('獲取到ip地址一共:',len(ips))
pprint.pprint(ips)
分享標題:python爬蟲批量獲取代理ip的實例代碼-創新互聯
文章源于:http://www.yijiale78.com/article2/dpdhoc.html
成都網站建設公司_創新互聯,為您提供微信公眾號、建站公司、品牌網站制作、Google、做網站、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯