python3 获取title的编写

Python016

python3 获取title的编写,第1张

水平有限,不会造轮子,只为学习。

在原来写端口扫描的基础上进一步爬取web服务的title信息,方便收集信息。

适用于在外网收集资产形成IP字典后去批量获取title,意在最快地寻找脆弱点。

自行安装BeautifulSoup4、requests库。

V1.0

python3 写的单线程爬取web系统的title信息。

注解

1.使用BeautifulSoup4库来解析HTML,爬取title信息;

2.打印title时,带有颜色的输出;

3.在开放443、4433、8443端口时,采用https进行访问;

4.解决SSL认证问题;

V1.0.1

python3 单线程写的爬取网站title信息。增加了OptionParser模块,运行时看起来比较舒服。

注解

1.依然是从IP字典里爬取,实际运行脚本时,即使没有获取title,也应该手动访问开放的端口,往往有意外惊喜;

2.端口内置在脚本里,可自行修改;

V1.1

python3写的多线程爬取web系统的title。

注解

1.只是使用threading模块,没有添加到队列,也没有加锁;本身port_list也不多;

V1.2

python3 写的多线程加队列的来爬取web系统的title信息。

注解

1.增加了queue队列,和多线程配合使用。更加实用;

V1.3

python3 写的多线程加队列的来爬取web系统的title信息。

增加result输出结果到文本,适应于内外网端口扫描并获取title

python3 编写扫描IP网段如192.168.1.0/24某些指定应用端口爬取title信息。 在代理进行内网渗透时内网资产不容易找到。

适用于内网、外网环境。

自行安装BeautifulSoup4、requests库。

V2.0

python3写的扫描IP段并爬取title信息,收集资产。

注解

1.使用ipaddress模块获取C段地址,也可以是B段;

2.只使用threading模块,没有添加队列queue;

V2.1

python3 写的多线程扫描IP段爬取title。在一定线程下,代理探测内网资产title的非常使用。

注解

1.port_list列表移动到scan方法里;

2.将IP添加到queue队列,而不是端口;

V2.2

python3 写的多线程扫描IP段爬取title。

注解

1.只是增加了result_out方法,将结果输出到指定文件;

https://github.com/aedoo/WebServiceScanner/blob/master/webservicescanner.py

产品id索引爬取标签内的产品各项标题链接价格 python可以使用网页请求方式:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快,或者多以表单形式上传参数,因此除了查询信息外,还可以修改信息。

另外可以以开发者的身份进入网站进行价格查询,打开网页,用开发者模式,任意复制一条首条新闻标题,粘贴到搜索框里。开发者模式,依次点击‘network’,‘XHR’找到翻译数据,点击Headers,请求为get方式,使用Beautiful soup解析网页,然后再安装bs。

Beautiful soup 指定xlml解析器进行解析,soup=BeautifulSoup(strhtml.text,'lxml'使用select(选择器)定位数据,使用浏览器的开发者模式,将鼠标停留在对应数据位置并右击。

开发者界面会有被选中部分,右击  copy  --->copy selector  将路径粘贴在文档中,代码如下#main >div >div.mtop.firstMod.clearfix >div.centerBox >ul.newsList >li:nth-child(1) >a。

这是选中的第一条路径,但我们要获取所有的新闻头条,因此将:li:nth-child(1)中冒号(包含冒号)后面的删掉。如下:#main >div >div.mtop.firstMod.clearfix >div.centerBox >ul.newsList >li >a,然后就可以直接查询了。

import beautifulsoup

import urllib2

def main():

userMainUrl = "你要抓取的地址"

req = urllib2.Request(userMainUrl)

resp = urllib2.urlopen(req)

respHtml = resp.read()

foundLabel = respHtml.findAll("label")

finalL =foundLabel.string

print "biaoti=",finalL

if __name__=="__main__":

main()