步骤

收集url至url.txt

python google.py

打开xray开始监听

python xray.py

自动化网页链接收集并打开

python scan.py

注意

1.需要安装selenium模块

2.安装chrome浏览器及chromedriver程序

3.chromedriver需要配置环境变量

4.需要添加证书至chrome

5.启动脚本前请删除或转移myscan_report.html以及url_spider.txt

启动

python main.py

运行环境

python3.7

PIP

pip install

selenium

urllib

requests

pyquery

threading

`from selenium import webdriver  # 用来驱动浏览器的

from selenium.webdriver.chrome.options import Options

from selenium.common.exceptions import TimeoutException

from selenium.webdriver.support.wait import WebDriverWait

import time

import os

from faker import Factory

import random

检查是否有残留url.txt文件

'''

if os.path.exists('url/url_0.txt'):

os.remove('url/url_0.txt')

else:

print("没有url/url_0.txt文件残留")

'''

pages = int(input("请输入扫描深度(页数):"))

with open('keyword.txt', 'r') as x:

for line in x:

word = line.replace('\n', '')

print("搜索关键词:"+word)

for page in range(0,pages):

print("正在爬取第"+str(page+1)+"页")

page = page*10

随机谷歌域名,防封

domain=random.choice(['www.google.com'

,'www.google.gl'

,'www.google.com.sv'

,'www.google.hn'

,'www.google.co.cr'

,'www.google.com.jm'

,'www.google.ht'

,'www.google.com.pr'

,'www.google.vg'

,'www.google.com.ag'

,'www.google.dm'

,'www.google.com.vc'

,'www.google.tt'

,'www.google.com.ar'

,'www.google.com.br'

,'www.google.com.co'

,'www.google.co.ve'

,'www.google.com.ec'

,'www.google.com.uy'

,'www.google.no'

,'www.google.is'

,'www.google.dk'

,'www.google.lv'

,'www.google.lt'

,'www.google.ru'

,'www.google.pl'

,'www.google.sk'

,'www.google.at'

,'www.google.ie'

,'www.google.nl'

,'www.google.be'

,'www.google.fr'

,'www.google.it'

,'www.google.es'

,'www.google.ro'

,'www.google.gr'

,'www.google.ba'

,'www.google.sm'

,'www.google.com.au'

,'www.google.co.nz'

,'www.google.co.ck'

,'www.google.com.sb'

,'www.google.ws'

,'www.google.as'

,'www.google.to'

,'www.google.co.il'

,'www.google.com.sa'

,'www.google.com.eg'

,'www.google.ae'

,'www.google.com.bh'

,'www.google.jo'

,'www.google.com.ly'

,'www.google.co.ma'

,'www.google.com.et'

,'www.google.mu'

,'www.google.ci'

,'www.google.dj'

,'www.google.cd'

,'www.google.cg'

,'www.google.gm'

,'www.google.co.ke'

,'www.google.com.gi'

,'www.google.co.bw'

,'www.google.co.zm'

,'www.google.com.na'

,'www.google.co.ls'

,'www.google.sh'

,'www.google.mw'

#,'www.google.cn'

,'www.google.co.kr'

,'www.google.mn'

,'www.google.co.jp'

,'www.google.com.hk'

,'www.google.com.tw'

,'www.google.com.vn'

,'www.google.com.my'

,'www.google.co.id'

,'www.google.com.pk'

,'www.google.com.bd'

,'www.google.com.np'

,'www.google.az'

,'www.google.am'

,'www.google.tm'

,'www.google.co.uz'

,'www.google.kg'

,'www.google.com.tj'])

print('使用谷歌域名:'+domain)

url = 'https://www.google.com.hk/search?q='+word+'&hl=zh&start='+str(page)+'&safe=images'#英文en中文zh

#url = 'https://'+domain+'/search?q='+word+'&hl=zh&start='+str(page)+'&safe=images'#英文en中文zh

#chromedriver打开指定url

option=Options()

option.add_argument("--headless")#没有窗口

option.add_argument('–disable-javascript')

#option.add_argument('--window-size=300,200')

option.add_argument('--blink-settings=imagesEnabled=false')#不显示图片

#使用随机ua,不然封ip需要人机验证

f = Factory.create()

ua = f.user_agent()

print('使用UA:'+ua)

option.add_argument('--user-agent="'+ua+'"')

driver =webdriver.Chrome(options=option)

driver.get(url)

#标签分类

nodelist = driver.find_elements_by_xpath("//a")

for url in nodelist:

url1=str(url.get_attribute("href"))

if url1!='None' and url1[0:18]!='https://www.google' and url1[0:15]!='https://support' and url1[0:20]!='https://accounts.goo' and url1[0:19]!='https://maps.google' and url1[0:20]!='https://translate.go' and url1[0:23]!='https://policies.google' and url1[0:23]!='https://webcache.google'and url1[0:22]!='http://webcache.google'and url1[8:21]!=domain[0:13]:

print(url1)

fp=open("url/url_0.txt","a+",encoding="utf-8")

fp.write(url1+'\n')

fp.close()

driver.quit()

#time.sleep(random.randint(5,10))

print("\n\n\n\n--------------------\n------收集完成------\n--------------------\n")

def spider(url,num):

option=Options()

option.add_argument("--headless")#没有窗口

option.add_argument('–disable-javascript')

option.add_argument('--window-size=300,200')

option.add_argument('–no-sandbox')

#option.add_argument('--blink-settings=imagesEnabled=false')#不显示图片

option.add_argument('--proxy-server=http://127.0.0.1:23333')

#使用随机ua,不然封ip需要人机验证

f = Factory.create()

ua = f.user_agent()

print('使用UA:'+ua)

option.add_argument('--user-agent="'+ua+'"')

driver =webdriver.Chrome(options=option)

driver.get(url)

#标签分类

nodelist = driver.find_elements_by_tag_name('a') + driver.find_elements_by_tag_name('script') + driver.find_elements_by_tag_name('img') + driver.find_elements_by_tag_name('link') + driver.find_elements_by_tag_name('iframe')

for url in nodelist:

print(url)

if url.get_attribute("src"):

url1 = url.get_attribute("src")

if str(url1)[0:4]=='http':

print(str(url1))

file = 'url/url_'+str(num)+'.txt'

fp=open(file,"a+",encoding="utf-8")

fp.write(url1+'\n')

fp.close()

if url.get_attribute("href"):

url2 = url.get_attribute("href")

if str(url2)[0:4]=='http':

print(str(url2))

file = 'url/url_'+str(num)+'.txt'

fp=open(file,"a+",encoding="utf-8")

fp.write(str(url2)+'\n')

fp.close()

driver.quit()

number = int(input("请输入扫描迭代次数:"))

num = 1

while num <= number:

txt = 'url/url_'+str(num-1)+'.txt'

print(txt)

with open(txt, 'r') as x:

for line in x:

if line and line[0:4]=='http':

print(line)

spider(line,num)

time.sleep(10)

num = num+1`

xray 被动_google搜索爬取xray被动扫描相关推荐

  1. Python爬虫练习(一) 爬取新笔趣阁小说(搜索+爬取)

    爬取笔趣阁小说(搜索+爬取) 首先看看最终效果(gif): 实现步骤: 1.探查网站"http://www.xbiquge.la/",看看网站的实现原理. 2.编写搜索功能(获取每 ...

  2. 知网关键词搜索爬取摘要信息

    知网关键词搜索爬取摘要信息 由于技术不成熟,代码冗余度较高.同时代码也可能会存在错误,也请各路高人指正. 本篇文章应用范围为期刊搜索(不包括外文文献),其他内容,没有进行测试!!! 本次爬虫所采用到的 ...

  3. python微博根据用户名搜索爬取该用户userId

    根据微博用户名搜索爬取该用户userId并返回 import urllib.request from urllib import parsefrom bs4 import BeautifulSoup# ...

  4. python爬取微博用户关注_Paython微博根据用户名搜索爬取该用户userId

    根据微博用户名搜索爬取该用户userId并返回 import urllib.request from urllib import parse from bs4 import BeautifulSoup ...

  5. Python搜索爬取淘宝商品信息并存储为csv文件(名称、店铺、销量、地址等)

    功能是搜索商品,并把搜到的商品信息一一爬取(多个页面): 爬取商品名称.店铺名称.销量.评论数量.地址等等,然后把信息存储为csv文件- 效果: 首先是程序运行 运行完后可以看到目录下出现了一个csv ...

  6. 爬取笔趣阁小说,并可以搜索爬取你喜欢的小说

    搜索进行爬取你自己喜欢的小说 我是一个小说爱好者,喜欢看小说,这也是我学习爬虫其中的一个原因. 我喜欢看网络小说,经常需要从网上下载小说.有的还不好找,有的下载不了,如果是正在更新的小说来说,就很难下 ...

  7. 极客搜索爬取request payload构建post请求

    这次要爬取的网站是极客搜索 首先我们打开这个网站 https://s.geekbang.org/ 可以看到网站首页如下图 我们输入关键词算法 会看到链接跳转https://s.geekbang.org ...

  8. 基于selenium模拟浏览器爬虫JS-frame,搜索+爬取详情页+翻页

    基于selenium模拟浏览器爬虫JS-frame网站 课设中需要爬一个很神奇的网站Web Gallery,一开始看结构以为是很简单的那种,开始爬的时候才发现它的结构之奇葩--所有东西都集成在一个ht ...

  9. python自动搜索爬取下载文件-python批量爬取下载抖音视频

    本文实例为大家分享了python批量爬取下载抖音视频的具体代码,供大家参考,具体内容如下 import os import requests import re import sys import a ...

最新文章

  1. legend位置 pyecharts_实验|pyecharts数据可视化分析-1
  2. java笔记之抽象类和接口
  3. 假如,绿茶婊的目标变成女生......
  4. 超252万市民预约报名 北京数字人民币红包中签结果公布啦
  5. 基于OEA框架的客户化设计(一) 总体设计
  6. idea 导入spring 源码 踩坑记总结整理
  7. 打开unity卡在loading白屏界面
  8. TabLayout+Viewpage滑动
  9. 盘点.确保物联网设备顺利运行的9项测试
  10. 连续型随机变量单点概率为0以及不可能事件
  11. OpenCV:旋转矩形(RotatedRect)
  12. mysql能够跨平台使用吗_Mysql跨平台(Windows,Linux,Mac)使用与安装
  13. ISCC 2021 SSTI
  14. PAT1009 说反话 (20分)
  15. 力扣 656.金币路径
  16. 玩转Mixly – 10、Arduino AVR编程 之 传感器,执行器,通信,存储,factory
  17. C++笔试试题讲解(~~~可能是全站唯独一份有解析的~~~)
  18. Qt入门教程【对话框】QInputDialog输入对话框
  19. 山东大学计算机组成与设计实验六 二进制补码加法器实验
  20. bootstrap 大坑,大坑

热门文章

  1. 电脑数据没有了怎么恢复?笔记本电脑数据丢失怎样恢复
  2. 给五子棋加个功能叫悔棋
  3. wxWidgets GUI 编程介绍
  4. C++中的常成员函数以及const用于函数重载
  5. canvas实现流星特效
  6. “互联网+“项目路演PPT制作学习笔记分享
  7. java给微信发送get和post请求
  8. 高德地图基础教程超详细版
  9. 小红书的大致运营思路是怎样的?
  10. 28个Unix/Linux的命令行神器