Python安全工具编写-搜索引擎收集信息

以下是基于传统引擎信息收集为例

在写安全工具时,首先要确定好我们的功能点:
1,请输入查询指令(要查询什么)
2,与搜索引擎建立连接
3,返回结果
4,筛选出我们想要的元素
那么我们将以上结果在必应上先操作一遍
Python安全工具编写-搜索引擎收集信息_第1张图片我们发现搜索引擎基本上传值方式都是GET传值,且将查询指令作为q的值传输给搜索引擎Python安全工具编写-搜索引擎收集信息_第2张图片在进行翻页操作时,first值会发生变化,如第一页first为1,第二页为11,第三页为21。。。
Python安全工具编写-搜索引擎收集信息_第3张图片Python安全工具编写-搜索引擎收集信息_第4张图片Python安全工具编写-搜索引擎收集信息_第5张图片
那么规律就出来了,每翻一页,则first会加10,且每一页显示的结果都为10条

根据以上结果我们就可以确定基本的代码框架

import requests
from bs4 import BeautifulSoup
import time
import urllib
#requests模块用于与搜索引擎建立连接,bs4模块用于筛选数据,time模块用于防止因为脚本执行过快导致出现报错或者进入人机验证等情况,urllib模块将输入的指令转为url编码

scan = input("请输入查询指令:")
#输入我们想查询的指令
url_encode_scan = urllib.parse.quote(scan)
for i in range(0,48):#循环翻页
	i = i *10 + 1#一个页面显示10条结果
	header = {
     
	'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
	}
	#模拟请求包头部
	
	url = 'https://www.bing.com/search?q='+url_encode_scan+'&qs=n&sp=-1&pq=site%3atencent.com&sc=0-16&sk=&cvid=57CCC0686DAB4885AC7B678E0B67F67D&first={}&FORM=PERE'.format(i)
	#构造url
	html = requests.get(url,headers=header)
	#返回页面内容
	soup = BeautifulSoup(html.content,'html.parser')
	#初始化筛选工具
	answer = soup.findAll('h2')
	#筛选出我们想要的元素
	
	try:
		for i in answer:
			print(i.a.get('href'))
			#返回我们想要的元素
			time.sleep(3)
			#休息三秒
	except:
		break
		#如果查询结果小于48页,则退出查找
	
print("查询结束")

运行结果显示:
Python安全工具编写-搜索引擎收集信息_第6张图片

你可能感兴趣的:(Python安全工具编写,python,安全,搜索引擎)