博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬站长之家写一个信息搜集器
阅读量:4673 次
发布时间:2019-06-09

本文共 2674 字,大约阅读时间需要 8 分钟。

前言:

不知道写什么好,绕来绕去还是写回爬虫这一块。

之前的都爬了一遍。这次爬点好用一点的网站。

0x01:

自行备好requests模块

目标站:http://tool.chinaz.com/

0x2:

代码:

import optparseimport requestsimport reimport sysfrom bs4 import BeautifulSoupdef main():    usage="[-z Subdomain mining]" \          "[-p Side of the station inquiries]" \          "[-x http status query]"    parser=optparse.OptionParser(usage)    parser.add_option('-z',dest="Subdomain",help="Subdomain mining")    parser.add_option('-p',dest='Side',help='Side of the station inquiries')    parser.add_option('-x',dest='http',help='http status query')    (options,args)=parser.parse_args()    if options.Subdomain:        subdomain=options.Subdomain        Subdomain(subdomain)    elif options.Side:        side=options.Side        Side(side)    elif options.http:        http=options.http        Http(http)    else:        parser.print_help()        sys.exit()def Subdomain(subdomain):    print('-----------Subdomains quickly tap-----------')    url="http://m.tool.chinaz.com/subdomain/?domain={}".format(subdomain)    header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}    r=requests.get(url,headers=header).content    g = re.finditer('\D[a-zA-Z0-9][-a-zA-Z0-9]{0,62}\D(\.[a-zA-Z0-9]\D[-a-zA-Z0-9]{0,62})+\.?', str(r))    for x in g:        lik="".join(str(x))        opg=BeautifulSoup(lik,'html.parser')        for link in opg.find_all('td'):            lops=link.get_text()            print(lops)def Side(side):    print('--------Side of the station inquiries--------')    url="http://m.tool.chinaz.com/same/?s={}".format(side)    header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}    r=requests.get(url,headers=header).content    g=r.decode('utf-8')    ksd=re.finditer('[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?',str(g))    for l in ksd:        ops="".join(str(l))        pods=BeautifulSoup(ops,'html.parser')        for xsd in pods.find_all('a'):            sde=re.findall('[a-zA-z]+://[^\s]*',str(xsd))            low="".join(sde)            print(low)def Http(http):    print('--------Http status query--------')    url="http://{}".format(http)    header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}    r=requests.get(url,headers=header)    b=r.headers    for sdw in b:        print(sdw,':',b[sdw])if __name__ == '__main__':    main()

  运行截图:

-h 帮助

-z 子域名挖掘

-p 旁站查询

-x http状态查询

 

 -z 截图

-p 截图

-x 截图

距离上学还有5天。啊啊啊啊啊啊啊啊啊啊啊

转载于:https://www.cnblogs.com/haq5201314/p/8455448.html

你可能感兴趣的文章
django之同源策略
查看>>
JAVA(时间对比排序程序)
查看>>
complex()
查看>>
各种字符串hash
查看>>
测试构造器它山之玉可以重构:身份证号(第四天)
查看>>
JS与PHP向函数传递可变参数的区别
查看>>
单元测试之初识
查看>>
golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
查看>>
内存分配 保存数据
查看>>
嵌入式实时操作系统的可裁剪性及其实现
查看>>
VC++2012编程演练数据结构《31》狄杰斯特拉算法
查看>>
盘点:移动服务 #AzureChat
查看>>
Sass学习笔记
查看>>
C语言练习
查看>>
1001. Extending MyPoint class
查看>>
js使用showModalDialog,弹出一个自适应大小窗口
查看>>
[poj 3436]最大流+输出结果每条边流量
查看>>
webpack的安装
查看>>
字符流Reader和Writer
查看>>
【校招面试 之 C/C++】第33题 C++ 11新特性(四)之STL容器
查看>>