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 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
Python和Go语言的区别总结
Feb 20 Python
python3.5安装python3-tk详解
Apr 26 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
python dumps和loads区别详解
Feb 04 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
django数据模型中null和blank的区别说明
Sep 02 Python
python lambda 表达式形式分析
Apr 03 Python
使用Python通过企业微信应用给企业成员发消息
Apr 18 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下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
Python简单生成随机姓名的方法示例
2017/12/27 Python
python找出完数的方法
2018/11/12 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
如何完美的建立一个python项目
2020/10/09 Python
Python实现一个论文下载器的过程
2021/01/18 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
行政助理求职自荐信
2013/10/26 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
大学生团日活动总结
2015/05/06 职场文书
《给予树》教学反思
2016/03/03 职场文书