• python+selenium+chromedriver抓取shodan搜索结果


    作用:免积分抓取shodan的搜索结果,并把IP保存为txt

    前提:

      ①shodan会员(ps:黑色星期五打折)

      ②安装有python27

      ③谷歌浏览器(ps:版本一定要跟chromedriver匹配)

      ④windows系统

    开始:

    一.安装好必要的包

      ①win+R 调用cmd

      ②cd C:Python27Scripts(ps:以你自己实际安装目录来)

      ③pip install selenium

      ④pip install pyquery

    二.下载核心组件和脚本

      ①shodan_project.zip 并且把解压到C:Python27

      ②chromedriver 解压进C:Python27shodan_project (ps:版本要跟谷歌浏览器对应,不然会导致抓取失败)

    使用教程:

      ①修改shodan账号密码,和你要搜索的关键字

      ②python shodan_main.py 出现以下画面说明成功运行

      ③结果保存在success.txt

    缺点:

      ①由于原作者是写死只抓取<a href="http://.*">格式的ip,会导致很多结果无法抓取出现getipfail<type'exceptions,Exception>的情况。

           ②然而shodan搜到的ip会有https,/host/,http等多种情况。你可以根据自己的情况修改源码。或者等我学习爬虫后出个升级版

    临时解决办法:

       ①打开shodan_main.py,改为下面的语法

    ip_item = re.findall(r'<a href=".*">', contents) 三个格式都抓取

      ②然而这样会导致下面的情况,把http://,/host/也给搞了进来

      ③我们可以利用记事本的替换功能,点击全部替换。

    改进:

      ①bat指定Notepad++打开shodan_main.py

    start /d "C:Program Files (x86)Notepad++" notepad++.exe "C:Python27shodan_projectshodan_main.py"

      ②bat一键启动shodan_main.py

    @echo off  
    cd  C:Python27shodan_project
    
    start python shodan_main.py
    
    exit

       ③bat打开结果目录

    start explorer "C:Python27shodan_project"

     2018/4/28更新:

      ①把keyword=的""改为',这样才能搜字符串

    shodan_seach(keywords='6379 country:"US"')               #关键字

        ②修改re.sub替换函数

    ip = re.sub('/host/|http://|https://|">', "", ip)   # |是或的意思,这样就不用手动替换了

     2018/4/29更新:

      ①项目添加clean.py,过滤success.txt里的个别乱码

    #!/usr/bin/env python
    #_*_coding:utf-8 _*_
    __author__ = 'gaogd'
    import  re
     
    with open('success.txt','r') as f:
        for line in f.readlines():
            result2 = re.findall('[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}', line)
            if not result2  == []:
                print result2[0]
                result = result2[0] + '
    '
                with open('arr_ip.txt', 'a+') as w:
                    w.write(result)

      ②修改打开结果的bat

    @echo off  
    cd  C:Python27shodan_project
    
    start python clean.py  '打开结果前运行该脚本
    
    start explorer "C:Python27shodan_project"
    
    exit                          'arr_ip.txt就是过滤后干净的ip

    感谢:

      lethelife.com

    参考:

      ①Python 从文件中筛选出ip 正则表达

      ②如何用python的re.sub( )方法进行“多处”替换

  • 相关阅读:
    PAT 1063 计算谱半径(20)(代码)
    PAT 1071 小赌怡情(15)(代码)
    PAT 1068 万绿丛中一点红(20)(测试点分析+思路分析)
    PAT 甲级 1011 World Cup Betting (20)(代码+思路)
    PAT 1041 考试座位号(15)(代码)
    PAT 1076 Wifi密码(15)(代码)
    Mvc全局过滤器与Action排除
    .NET Core WebApi使用Swagger
    .NET WebApi使用Swagger
    JQuery常见方法
  • 原文地址:https://www.cnblogs.com/zuoxiaolongzzz/p/8963947.html
Copyright © 2020-2023  润新知