zoukankan      html  css  js  c++  java
  • Python 爬虫抓取代理IP,并检测联通性

    Rex_Blog

    帮朋友抓了一些代理IP,并根据测试联的通性,放在了不通的文件夹下。特将源码分享

    注意:

    1,环境Python3.5

    2,安装BeautifulSoup4  requests

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #-*- coding:gb18030 -*-
     
    from bs4 import BeautifulSoup
    import requests
    import time
    import os,sys
     
    all_url_add={
          'url2':'http://ip84.com/gn/',
          }
     
    def func(url):
        = requests.get(url)
        content = r.text
        soup = BeautifulSoup(content, "html.parser")
        ListTable = soup.find_all("table"class_="list")
        for table in ListTable:
            ListTr = table.find_all("tr")
            for tr in ListTr:
                try:
                    ListTd = tr.find_all("td")
                    ipaddress = str(ListTd[0].get_text()).strip()
                    port = str(ListTd[1].get_text()).strip()
                    city = str(ListTd[2].get_text()).strip().replace(" ", "")
                    leixing = str(ListTd[3].get_text()).strip()
                    xieyi = str(ListTd[4].get_text()).strip()
                    shudu = str(ListTd[5].get_text()).strip()
                    time1 = str(ListTd[6].get_text()).strip()
                    = open("ip" + '.txt''a')
                    f.write(ipaddress+":"+port+' ')
                    f.close()
                    print('地址:'+ipaddress + "端口:" + port + "地区:" + city + "类型:" + leixing + "协议" + xieyi + "速度" + shudu + "时间:" + time1)
                except Exception as e:
                    print (u"-------------------程序异常-----------------------")
            return 'success'
        print (u'本页抓取结束,正在跳转下一页')
     
     
    def pin():
        f2 = open('ip.txt''r')
        count = len(open('ip.txt''rU').readlines())
        for in range(count):
            ip = f2.readline().split(':')[0]
            return1 = os.system('ping -n 5 -w 5 %s' % ip)  
            if return1:
                print('测试失败')
            else:
                print('测试成功,正在写入新文件')
                f3 = open('SuccessIp.txt''a')
                f3.write(f2.readline() + ' ')
                f3.close()
        f2.close()
        print('程序结束,可用IP已放在SuccessIp中')
     
     
    if  __name__=='__main__':
            for in all_url_add:
                print (x)
                for in range(1,50):
                    url=all_url_add[x]+str(y)
                    print (url)
                    status=func(url)
                    if status=='success':
                        print(y,'页结束')
            print (u'****程序抓取运行结束,正在检查所得IP连通性,请勿关闭窗口*****')
            pin()

    有点乱,有时间将数据存储在数据库,再将这个功能集成在博客当中。

     

    更多内容,可访问:http://rexyan.cn
  • 相关阅读:
    IPAD3终于发布了!苹果在5年内还是很难被超越!
    今天更新了ubuntu11.10!
    折腾两日系统重装,对比ubuntu11.04 和windows 7旗舰版!(不定时更新添加新的体验)
    DELL XPS M1530安装MAC OS X Lion 10.7.3经验分享!
    ubuntu 11.04 指纹识别的安装!
    Dlink DIR615L 和水星(mercury) MW300R桥接方法!
    POJ 3522 Slim Span(kruskal 变型)
    POJ 3621 Sightseeing Cows(SPFA + 构造负环)
    POJ 2553 The Bottom of a Graph(Tarjan)
    POJ 2728 Desert King(最优比率生成树)
  • 原文地址:https://www.cnblogs.com/rexyan/p/6212923.html
Copyright © 2011-2022 走看看