利用Python爬取fofa网页端数据

摘要:
安装环境:pipinstall requestspip installlxmlpipinstall fire命令:python of a Py-s=title=“your keyword”-o=“result output file”-c=“your cookie”代码如下:importRequests,time,base64,firefromlxmlinteredeffofasc(s,o,c):try:sbase64=(base6

安装环境:

pip install requests
pip install lxml
pip install fire

使用命令:

python fofa.py -s=title="你的关键字" -o="结果输出文件" -c="你的cookie"

 

代码如下:

import requests,time,base64,fire
from lxml import etree
def fofasc(s,o,c):
    try:
        sbase64 = (base64.b64encode(s.encode('utf-8'))).decode('utf-8')
        cookies = {
            "_fofapro_ars_session": c
        }

        headers = {
            'User-Agent': 'Mozilla/5.0 (Linux; Android 7.1.2; PCRT00 Build/N2G48H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Safari/537.36 fanwe_app_sdk sdk_type/android sdk_version_name/4.0.1 sdk_version/2020042901 screen_width/720 screen_height/1280',
        }
        for i in range(1,1000):
            url = "https://www.fofa.so/result?q="+s+"&qbase64="+sbase64+"&full=true&page="+str(i)
            r = requests.get(url, headers=headers, cookies=cookies)
            soup = etree.HTML(r.text)
            result = soup.xpath('//*[@id="ajax_content"]/div/div/div/a/text()')
            print(result)
            if result != []:
                for rs in result:
                    with open(o,mode="a+") as f:
                        f.write(rs+"
")
            else:
                print("已经获取不到任何数据,爬取完毕!")
                break
            time.sleep(2)
    except KeyboardInterrupt:
        print('用户退出')
if __name__ == '__main__':
    fire.Fire(fofasc)

  

免责声明:文章转载自《利用Python爬取fofa网页端数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇indy tcpclient发送和接收Linux Python3 的一些坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python爬虫之Splash使用初体验

Splash是什么: Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。 为什么要有Splash: 为了更加有效的制作网页爬虫,由于目前很多的网页通过javascrip...

CSDN博客专栏文章批量下载脚本[python实现]

    最近发现CSDN的blog专栏还是很给力的,毕竟这是一整个系列的文章,学习某方面知识比较容易形成体系,而且前人的经验还是相当有参考价值的。     原先也开了两个,只是工作比较忙,加之lz比较懒,所以没啥人气,囧。     最近看书之余,也会去看看别人的专栏,虽然你看或不看,文章就在那里,但是不能上网的时候还是很蛋疼的     so,花了一个小时...

pyes-elasticsearch的python客户端使用笔记

elasticsearch入门: http://www.qwolf.com/?p=1387 一.重要的概念 http://834945712.iteye.com/blog/1915432这篇文章很多类比做的很好,便于快速理解pyes的结构 http://blog.plotcup.com/a/106 很清晰的示例代码 1. 使用pip install pye...

后端开发工程师的开发环境配置(Vscode+C/Go/Python等)

前言         我是一名后端开发工程师,主要语言是C、Go、Python。早年做C开发的时候都是在windows下开发,一直使用的是soure insight,尤其是时隔多年更新的4.0版本解决了中文乱码等问题,用起来更是得心应手。后来转到Mac下开发,虽然可以用wine运行windows程序,但总感觉别扭,也是时候做一些新的尝试了。      ...

Python引用模块和查找模块路径

模块间相互独立相互引用是任何一种编程语言的基础能力。对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义。对于编译型的语言,比如C#中的一个.cs文件,Java中的一个.java或者编译后的.class文件可以认为是一个模块(但常常不表述为模块);对于解释型的语言会更加直观些,比如PHP的....

python下进行10进制转16进制不带0x并且将16进制转成小端序

前记   python涉及到和硬件互交的部分,一般是需要发送十六进制的帧长的。所以,python这个转换还是经常使用的。笔者在这里遇到了一个问题。就做一个记录吧。 基本方法:  假如你熟悉python的话,这个是非常简单的,就只需要把int类型的数取从第二位开始的数据就行了:如下所述: hex(28)[2:] 测试实例: import sys arr...