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开发实例分享bt种子爬虫程序和种子解析
May 21 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
分享几道你可能遇到的python面试题
Jul 24 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
python中join()方法介绍
Oct 11 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
解决python线程卡死的问题
Feb 18 Python
python内存管理机制原理详解
Aug 12 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 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操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
在Django中创建第一个静态视图
2015/07/15 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
python中range()与xrange()用法分析
2016/09/21 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python的debug实用工具 pdb详解
2019/07/12 Python
用python制作个视频下载器
2021/02/01 Python
英国团购网站:Groupon英国
2017/11/28 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
学生感冒英文请假条
2014/02/04 职场文书
排查整治工作方案
2014/06/09 职场文书
工程部主管岗位职责
2015/02/12 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
python实现简单的三子棋游戏
2022/04/28 Python
德生2P3收音机开箱评测
2022/04/30 无线电
nginx 配置指令之location使用详解
2022/05/25 Servers