0%

【Python】爬取代理IP

爬取代理ip

2018/2/4 20:00:59

国内高匿代理IP 为我们的代理ip来源,用以下代码获取页面上的代理ip。

#-*-coding:utf-8 -*-
import urllib2
import urllib
import re

def get_ips(url):
    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}
    req = urllib2.Request(url=url, headers=header)
    r = urllib2.urlopen(req)
    the_page = r.read()
    ipadress = re.findall('(?<=<td>)\d+.\d+.\d+.\d+(?=</td>)', the_page)
    port = re.findall('(?<=<td>)\d+(?=</td>)', the_page)
    for i in range(len(ipadress)):
        ipadress[i] += ":" + port[i]
    print ipadress
    f = open("ipse.txt", "a+")
    for ip in ipadress:
        f.write(ip)
        f.write("\r\n")
    f.close()

f = open("ipse.txt", "w+")
f.write("")
f.close()
# get_ips("http://www.ip181.com/")
for ad in range(1,4000):    #从第一页爬到4000页,4000为你需要爬的页数
    url="http://www.xicidaili.com/nn/"+str(ad)
    print url
    get_ips(url)
注:此处可以使用多线程,但是需要控制线程数。User-Agent头必须要加,否则获取不了页面源码。爬取的ip地址,不一定可以使用。需要我们自行过滤验证。
验证方法:用代理取访问 http://ip.chinaz.com/getip.aspx 会直接显示访问的ip,以及ip地址归属。获取成功ip及归属的代理ip即为可用ip。