如何判断多个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})
代码如上
也可以自行改正 。