python 制作网站筛选工具(附源码)


Posted in Python onJanuary 21, 2021

一.思路

1.整体思路

python 制作网站筛选工具(附源码)

2.代码思路

python 制作网站筛选工具(附源码)

思路很简单,就是用python发送请求,提取响应体中的状态码加以判断,最后保存到本地txt文本中,以实现网站信息的筛选。

二.撰写代码

import time
import requests
import urllib3
from concurrent.futures import ThreadPoolExecutor

#取源文件中的网址并且去重
def get_url(old_file):
  with open(old_file,'r',encoding='gbk')as f:
    urllist=list(set(f.readlines()))
    return urllist

#主体,发送请求,通过异常捕获判断能否响应,通过状态码判断网闸能否正常访问
def request(url):
  url=url.strip()
  #构造请求头信息
  headers = {
    'Connection': 'keep-alive',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
  }
  try:
    #忽略证书安全警告
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    r=requests.get(url,headers=headers,timeout=10,verify=False)#timeout设置超时时间,我设置了10s,使用verif=False忽略sll认证
    if r.status_code==200:
      cost_time=r.elapsed.total_seconds()#计算访问耗时
      print(url,' ----->【能访问】访问耗时:\033[35;46m{:.2f}s\033[0m'.format(cost_time))
      can_access_save_to_txt(url)
    else:
      print(url,' ----->不能访问,状态码为:\033[31;44m{}\033[0m'.format(r.status_code))
  except:
    print(url, ' ----->不能访问,原因:\033[31;44m不能响应\033[0m')


#将能访问的网址保存到new_file
def can_access_save_to_txt(result):
  result=result.strip()
  #筛选出不是.apk的url,此判断可以不加
  if not result.endswith('.apk'):
    with open(aim_file,'a')as f:
      f.write(result+'\n')


def main():
  s_time=time.time()
  #使用线程池,创建四条线程。
  pool=ThreadPoolExecutor(max_workers=4)
  urls=get_url(orign_file)
  for url in urls:
    pool.submit(request,url)
  pool.shutdown()
  e_time=time.time()
  sum_time=int(e_time-s_time)
  if sum_time>60:
    print(f'\033[38;46m 程序正常执行结束退出!共耗时:【{sum_time//60}分钟】 \033[0m')
  elif sum_time/60>1:
    print(f'\033[38;46m 程序正常执行结束退出!共耗时:【{sum_time//60*60}小时】 \033[0m')


if __name__ == '__main__':
  orign_file=r'E:\test.txt'
  #筛选后能访问的网址
  aim_file="./data/test_can_access.txt"
  #筛选后不能访问的网址
  main()

三.运行结果

python 制作网站筛选工具(附源码)

四.总结

本次使用python撰写了一款筛选网站的小工具,将网站大致分为能访问和不能访问两类,将能够访问且状态码为200的网站存储到了文件中,最终实现了网站的筛选。思路、代码方面有什么不足欢迎各位大佬指正、批评!

以上就是python 制作网站筛选工具(附源码)的详细内容,更多关于python 制作网站筛选工具的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
python下载文件时显示下载进度的方法
Apr 02 Python
linux下python抓屏实现方法
May 22 Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 Python
python学习 流程控制语句详解
Jun 01 Python
Django实现简单分页功能的方法详解
Dec 05 Python
python三方库之requests的快速上手
Mar 04 Python
Python字典遍历操作实例小结
Mar 05 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
使用Pytorch来拟合函数方式
Jan 14 Python
快速一键生成Python爬虫请求头
Mar 04 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 #Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 #Python
python使用scapy模块实现ARP扫描的过程
Jan 21 #Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 #Python
Pandas直接读取sql脚本的方法
Jan 21 #Python
python asyncio 协程库的使用
Jan 21 #Python
python palywright库基本使用
Jan 21 #Python
You might like
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
利用python实现AR教程
2019/11/20 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
企业给企业的表扬信
2014/01/13 职场文书
军训自我鉴定200字
2014/02/13 职场文书
开业典礼主持词
2014/03/21 职场文书
迎新晚会主持词
2014/03/24 职场文书
网站出售协议书范文
2014/10/10 职场文书
会议主持词开场白
2015/05/28 职场文书
退伍军人感言
2015/08/01 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
mysql 获取相邻数据项
2022/05/11 MySQL
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js