您的位置:首页 > 编程语言 > Python开发

python 自动抓取代理ip

2013-08-13 14:36 344 查看
#!/usr/bin/python

#-*- coding:utf-8 -*-

'''

Created on 2013-8-13

通过python实现自动抓取网上的代理ip和端口

@author: 136354553

'''

import urllib,time,re,logging

URL = 'http://www.goodips.com/?ip=&port=&dengji=&adr=%E7%94%B5%E4%BF%A1&checktime=&sleep=1%E7%A7%92%E5%86%85&cunhuo=48%E5%B0%8F%E6%97%B6%E4%BB%A5%E4%B8%8A&px='

class getProxyIP:

def format_log(self):

logging.basicConfig(level=logging.INFO,

format='%(asctime)s %(message)s',

datefmt='%Y-%m-%d %H:%M:%S',

filename='proxy.log',

filemode='w+')

logging.info("ip: " + "port")

# 从网页抓去代理 ip ,并整理格式

def getProxyHtml(self):

# 抓去代理 ip页面的代码

page = urllib.urlopen(URL)

html = page.read()

#print html

return html

def ipPortRe(self):

# 从页面代码中取出代理 ip和端口

html = self.getProxyHtml()

#ip_re = re.compile(r'(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')

ip_re = re.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+\n.+>(\d{1,5})<')

ip_port = re.findall(ip_re,html)

print ip_port

return ip_port

def proxyIP(self):

# 格式化输出代理 ip和端口

ip_port = self.ipPortRe()

# 将代理 ip整理成['221.238.28.158:8081', '183.62.62.188:9999']格式

proxyIP = []

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

proxyIP.append( ':'.join(ip_port[i]))

logging.info(proxyIP[i])

# 将代理 ip整理成[{'http': 'http://221.238.28.158:8081'}, {'http': 'http://183.62.62.188:9999'}]格式

proxy_list = []

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

a0 = 'http://%s'%proxyIP[i]

a1 = { 'http ':'%s'%a0}

proxy_list.append(a1)

print proxy_list

return proxy_list

if __name__ == '__main__':

time_start = time.time()

t = getProxyIP()

t.format_log()

t.proxyIP()

time_end = time.time()

time = time_end - time_start

print time
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: