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 相关文章推荐
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
详解在Python程序中自定义异常的方法
Oct 16 Python
Django 生成登陆验证码代码分享
Dec 12 Python
Python变量赋值的秘密分享
Apr 03 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
使用python客户端访问impala的操作方式
Mar 28 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
使用python计算三角形的斜边例子
Apr 15 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
dedecms中常见问题修改方法总结
2007/03/21 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python中变量交换的例子
2014/08/25 Python
跟老齐学Python之集合的关系
2014/09/24 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
科研先进个人典型材料
2014/01/31 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
男性健康日的活动方案
2014/08/18 职场文书
单位委托函范文
2015/01/29 职场文书
卡特教练观后感
2015/06/08 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书