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 获取文件列表(或是目录例表)
Mar 25 Python
python利用elaphe制作二维条形码实现代码
May 25 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
Python科学计算之NumPy入门教程
Jan 15 Python
浅谈python迭代器
Nov 08 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 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
php过滤XSS攻击的函数
2013/11/12 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
vc6编写python扩展的方法分享
2014/01/17 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
食品采购员岗位职责
2014/04/14 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
公司保密管理制度
2015/08/04 职场文书
导游词之五台山
2019/10/11 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
frg-100简单操作(设置)说明
2022/04/05 无线电
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS