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和C语言混合编程实例
Jun 04 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
python实现汉诺塔方法汇总
Jul 25 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python笔记之工厂模式
Nov 20 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python实现网络五子棋
Apr 11 Python
教你怎么用python selenium实现自动化测试
May 27 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
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python登录系统界面实现详解
2019/06/25 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
python获取栅格点和面值的实现
2020/03/10 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
python中使用np.delete()的实例方法
2021/02/01 Python
init进程的作用
2012/04/12 面试题
会计电算化个人求职信范文
2014/01/24 职场文书
旅游网创业计划书
2014/01/31 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
学校节能减排方案
2014/06/13 职场文书
相亲活动方案
2014/08/26 职场文书
用Python创建简易网站图文教程
2021/06/11 Python