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

前提:

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

  ②安装有python27

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

  ④windows系统

开始:

一.安装好必要的包

  ①win+R 调用cmd

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

  ③pip install selenium

  ④pip install pyquery

二.下载核心组件和脚本

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

  ②chromedriver 解压进C:\Python27\shodan_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:\Python27\shodan_project\shodan_main.py"

  ②bat一键启动shodan_main.py

@echo off
cd C:\Python27\shodan_project start python shodan_main.py exit

  ③bat打开结果目录

start explorer "C:\Python27\shodan_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] + '\n'
with open('arr_ip.txt', 'a+') as w:
w.write(result)

  ②修改打开结果的bat

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

感谢:

  lethelife.com

参考:

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

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

python+selenium+chromedriver抓取shodan搜索结果的更多相关文章

  1. 关于python抓取google搜索结果的若干问题

    关于python抓取google搜索结果的若干问题     前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童 ...

  2. [Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

    思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=% ...

  3. selenium+PhantomJS 抓取淘宝搜索商品

    最近项目有些需求,抓取淘宝的搜索商品,抓取的品类还多.直接用selenium+PhantomJS 抓取淘宝搜索商品,快速完成. #-*- coding:utf-8 -*-__author__ =''i ...

  4. selenium+chrome抓取数据,运行js

    某些特殊的网站需要用selenium来抓取数据,比如用js加密的,破解难度大的 selenium支持linux和win,前提是必须安装python3,环境配置好 抓取代码: #!/usr/bin/en ...

  5. C#使用Selenium+PhantomJS抓取数据

    本文主要介绍了C#使用Selenium+PhantomJS抓取数据的方法步骤,具有很好的参考价值,下面跟着小编一起来看下吧 手头项目需要抓取一个用js渲染出来的网站中的数据.使用常用的httpclie ...

  6. selenium-java web自动化测试工具抓取百度搜索结果实例

    selenium-java web自动化测试工具抓取百度搜索结果实例 这种方式抓百度的搜索关键字结果非常容易抓长尾关键词,根据热门关键词去抓更多内容可以用抓google,百度的这种内容容易给屏蔽,用这 ...

  7. scrapy和selenium结合抓取动态网页

    1.安装python (我用的是2.7版本的) 2.安装scrapy:   详情请参考 http://blog.csdn.net/wukaibo1986/article/details/8167590 ...

  8. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的se ...

  9. 利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

随机推荐

  1. selenium分布式启动(deepin)

    1.deepin安装jdk: 下载地址:链接:https://pan.baidu.com/s/19-pU8G6RzMW92uBCxBH7sA 密码:1c7n 解压:tar -zxvf jdk-8u20 ...

  2. 面试官:为什么MySQL的索引要使用B+树,而不是其它树?比如B树?

    InnoDB的一棵B+树可以存放多少行数据? 答案:约2千万 为什么是这么多? 因为这是可以算出来的,要搞清楚这个问题,先从InnoDB索引数据结构.数据组织方式说起. 计算机在存储数据的时候,有最小 ...

  3. printStackTrace()造成的并发瓶颈

    一 背景 在一次活动前的压测中,发现一个服务(平响为250ms左右)存在并发瓶颈,单实例的QPS压力从20升高到40后服务就雪崩了(平响急剧升高). 通过<jstack -F>命令查看线程 ...

  4. 《NASA对N+3代先进飞行器概念设计最终报告》阅读笔记

    民用航空的爆炸式增长已是未来的必然,灿烂的前景也意味着巨大的挑战,谁能发掘到未来技术的潜力,谁就能称霸下一个30年的天空! 文章目录 总概述 单双争霸 四点发现 方案分析 多维度分析 设计要求 品质因 ...

  5. Vue3: 如何以 Vite 创建,以 Vue Router, Vuex, Ant Design 开始应用

    本文代码: https://github.com/ikuokuo/start-vue3 在线演示: https://ikuokuo.github.io/start-vue3/ Vite 创建 Vue ...

  6. win10 随记

    昨天买的台式电脑,今天到了.有点小激动(用了5年的i3笔记本可以稍微休息下了,哈哈) 拿到电脑,和朋友一块,插线...最终连接成功. 记录下过程中的乌龙操作,,, 1.连接好线路后,显示器没反应,(显 ...

  7. altium designer使用小技巧,记录

    1.在自建库文件中添加component File--open----schlib或pcblib---Tools---new component---绘制---保存. 2.编辑component 左边 ...

  8. 数据结构(C++)——链表

    顺序表和链表的比较 1.存取方式 顺序表可以随机访问,而链表只能从表头顺序查找.(因此经常查找顺序表某一个元素时,顺序表更适合) 2.逻辑结构与物理结构 顺序表中,逻辑上相邻的元素,其物理存储位置也相 ...

  9. selenium中的三种等待方式

    1.强制等待,采用的time.sleep,然后后面加上要等待的时间: 2.隐性等待implicitly_wait,隐性等待设定后,会对之后的所有代码生效,会在设定的时间之内,不停的去查找元素,如果找到 ...

  10. Spring创建Bean的过程Debug

    目录 Spring流程Debug 1.1 Spring测试环境搭建 1.2 Debug容器创建过程 1.3 AbstractApplicationContext的refresh()包含的13个方法分析 ...