获得代理ippython_Python爬取可用的代理IP

前言

就以最近发现的一个免费代理IP网站为例:http://www.xicidaili.com/nn/。在使用的时候发现很多IP都用不了。

所以用Python写了个脚本,该脚本可以把能用的代理IP检测出来。

脚本如下:

#encoding=utf8

import urllib2

from bs4 import BeautifulSoup

import urllib

import socket

User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'

header = {}

header['User-Agent'] = User_Agent

'''

获取所有代理IP地址

'''

def getProxyIp():

proxy = []

for i in range(1,2):

try:

url = 'http://www.xicidaili.com/nn/'+str(i)

req = urllib2.Request(url,headers=header)

res = urllib2.urlopen(req).read()

soup = BeautifulSoup(res)

ips = soup.findAll('tr')

for x in range(1,len(ips)):

ip = ips[x]

tds = ip.findAll("td")

ip_temp = tds[1].contents[0]+"\t"+tds[2].contents[0]

proxy.append(ip_temp)

except:

continue

return proxy

'''

验证获得的代理IP地址是否可用

'''

def validateIp(proxy):

url = "http://ip.chinaz.com/getip.aspx"

f = open("E:\ip.txt","w")

socket.setdefaulttimeout(3)

for i in range(0,len(proxy)):

try:

ip = proxy[i].strip().split("\t")

proxy_host = "http://"+ip[0]+":"+ip[1]

proxy_temp = {"http":proxy_host}

res = urllib.urlopen(url,proxies=proxy_temp).read()

f.write(proxy[i]+'\n')

print proxy[i]

except Exception,e:

continue

f.close()

if __name__ == '__main__':

proxy = getProxyIp()

validateIp(proxy)

运行成功后,打开E盘下的文件,可以看到如下可用的代理IP地址和端口:

总结

这只是爬取的第一页的IP地址,如有需要,可以多爬取几页。同时,该网站是时时更新的,建议爬取时只爬取前几页的即可。以上就是本文的全部内容,希望对大家学习使用Python能有所帮助。

更多Python爬取可用的代理IP相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值