如何判断多个url的状态 即是否能成功访问?
假设我们所有的url在excel种
我们可以用loadwork 这个库 遍历所有的url 放入 列表
再通过request 或者 httpx 来判断 这个网址status_code 进而放入mongo种
import httpx
from openpyxl import load_workbook
from pymongo import MongoClient
# 得到对象
wb = load_workbook('D:\kyls_working\ScrapyCurrencyCrawl\ScrapyCurrencyCrawl\excelWebSite\总表.xlsx')
# 得到sheet页的对象
sheet = wb['可以访问']
# url列表
url_list = []
# 循环两列所有对象并生成 图片名
# 得到一个mongo客户端对象
client = MongoClient("mongodb://localhost:27017/")
# 先执行删除
client.drop_database("UrlStatus")
# 再创建数据库
db = client.UrlStatus
# 创建集合
coll = db.status
# 遍历第二行所有数据 并生成url 的值
for col in sheet.iter_cols(min_col=7, max_col=7, min_row=2):
for cell in col:
url = cell.value
# 将遍历的对象放入列表中
url_list.append(url)
# 遍历url 是否能够成功访问
for url in url_list:
try:
resp = httpx.get(url)
# 如果能成功访问
if resp.status_code == 200:
print("success_url", url)
rs = coll.insert_one({"success_url": url})
# 网址为404的
elif resp.status_code == 404:
print("404", url)
rs = coll.insert_one({"404_url": url})
# 为其他状态的网址
else:
print('other', url)
rs = coll.insert_one({"other": url})
# 超时网址
except TimeoutError as e:
print(e)
rs = coll.insert_one({"问题网址": url})
代码如上
也可以自行改正 。
如何判断多个url的状态 即是否能成功访问?的更多相关文章
- MVC下判断用户登录和授权状态方法
MVC下判断用户登录和授权状态方法 在我们日常开发的绝大多数系统中,都涉及到管理用户的登录和授权问题.登录功能(Authentication),针对于所有用户都开放:而授权(Authorization ...
- 利用LoadRunner判断HTTP服务器的返回状态
利用LoadRunner判断HTTP服务器的返回状态第一种方法:是利用LR的内置函数web_get_int_property.举例:#include "web_api.h"Acti ...
- WPF 判断是否为设计(Design)状态
在WinForm开发中,一般会在窗体或者UserControl中判断当前是否为设计状态,如: if (!this.DesignMode) { // } 有时候需要在Load事件中加上一些从服务 ...
- 通过JS判断联网类型和连接状态
通过JS判断联网类型和连接状态 中国的移动网络环境复杂,为了给用户带去更好访问体验,开发者希望能了解用户当前的联网方式,然后给用户一个符合当前网络环境的请求结果. W3C的规范中给出了一个方法来获得现 ...
- js控制公共模板中,不同页面中的导航选中效果-判断当前的url
用js的做法也很多.比较推荐的方法是判断当前的url,然后根据url在nav中的位置,来对nav中的某个导航增加选中样式,代码如下: <!doctype html> <html la ...
- js判断元素是否是disable状态
js判断元素是否是disable状态 jquery判断元素状态用$(select).prop(属性值) == true js判断button是否可以点击: //判断button是否为不可点击状态 if ...
- Struts2重新学习之自定义拦截器(判断用户是否是登录状态)
拦截器 一:1:概念:Interceptor拦截器类似于我们学习过的过滤器,是可以再action执行前后执行的代码.是web开发时,常用的技术.比如,权限控制,日志记录. 2:多个拦截器Interce ...
- 前端开发学习之——使用jquery/javascript判断及改变checkbox选中状态
一.使用jquery判断及改变checkbox选中状态 1.使用JQuery判断一个checkbox 是否为选中: (1).attr('checked) 看JQuery版本1.6+返回:”checke ...
- python3:判断手机的亮屏状态
在用python对手机做一些自动化操作时,常常会判断手机的亮屏状态,知晓手机的亮屏状态后才好做进一步的动作,如给屏幕解锁等. 用于了解手机的亮屏情况,有一个adb命令可用: adb shell du ...
随机推荐
- 推荐软件(一):Motrix——磁力下载器
个人觉得迅雷这样的下载器广告又多,启动速度又慢,又占用内存和存储,非常地不好用.有时候下载速度也不是你自己网速的最大值,而且有一些资源也会因为版权问题阻止你下载. Motrix 界面非常简洁:下载速度 ...
- suse 11 sp3编译报错问题
suse安装,默认是不安装gcc的,今天安装gcc之后,编译suse11 sp3,报错如下: scripts/basic/fixdep.c:106:23: fatal error: sys/types ...
- 记一次twikoo引发的站点重大事故
今天我测试私人博客的时候发现twikoo评论发生了错误,显示评论失败:0,我怀疑是我设置的twikoo安全域名有问题,所以我看了整个lssues,找到了我的解决方法! 1.关于配置安全域名后评论消失的 ...
- 持久化-DLL劫持
持久化-DLL劫持 原理 通过篡改.替换和代理原dll文件来达到劫持. 原理演示 假定演练流程 假定我们要劫持的目标是 c:\temp\legit.dll 获取 c:\temp\legit.dll 所 ...
- PTA C语言作业
6-1 使用函数输出一个整数的逆序数 (20 分) 本题要求实现一个求整数的逆序数的简单函数. 函数接口定义: int reverse( int number ); 其中函数reverse须返回用户 ...
- ifort + mkl + impi (全套intel)编译安装量子化学软件GAMESS 2022 R1版本
说明:linux下编译软件都需要先配置好该软件依赖的系统环境.系统环境可以通过软件的安装说明了解,例如:readme.md等文件或网页.这个前提条件很重要!后面正式编译出错基本都可以归结到系统环境配置 ...
- KingbaseES blob 类型数据导入导出
KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...
- Mac_mysql_密码重置
1 通过Mac 的设置 stop mysql 2 跳过权限认证 // 进入数据库指令文件 cd /usr/local/mysql/bin // 跳过权限认证 sudo ./mysqld_safe -- ...
- spark 读取hive 计算后写入hive
package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, Spa ...
- 利用c++编写bp神经网络实现手写数字识别详解
利用c++编写bp神经网络实现手写数字识别 写在前面 从大一入学开始,本菜菜就一直想学习一下神经网络算法,但由于时间和资源所限,一直未展开比较透彻的学习.大二下人工智能课的修习,给了我一个学习的契机. ...