频道栏目
首页 > 资讯 > Python > 正文

python 自动抓取代理ip

13-08-14        来源:[db:作者]  
收藏   我要投稿

#!/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

相关TAG标签
上一篇:MySQL最佳实践
下一篇:php168 V7.0 最新后台拿Shell方法及修复
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站