【问题标题】:Python script to find error code 404 from URL list从 URL 列表中查找错误代码 404 的 Python 脚本
【发布时间】:2021-12-31 06:25:39
【问题描述】:
from pandas import DataFrame 
import csv
import requests

urllist_404 = []
resplist = []
code_list = []
count = 0

with open('cmsURl.csv1.csv', 'r') as file:
    reader = csv.reader(file)

for row in reader:
    urls = row[1]
    request = requests.get(urls)
    request_code = request.status_code
    count = count + 1
    print(count)
    if request_code == 404:
       urllist_404.append(urls)
       resplist.append(request.elapsed)
       code_list.append(request_code)
df = DataFrame({'URL': urllist_404, 'Response Code': code_list, 'Response_Time': resplist})
df.to_excel('Error_404_list.xlsx')

我正在尝试制作一个 python 脚本来从超过 10000000 个返回响应代码 404 的 URL 的 CSV 文件中查找 URL,我需要在循环中将新行写入输出 CSV,以便如果程序由于任何原因而关闭,我可以保存结果副本,直到发生故障,任何人都可以建议我如何使它工作

更新的带有try-except块的sn-p,它只运行退出代码为0的脚本,但不写入新的excel文件

from pandas import DataFrame
import csv
import requests

urllist_404 = []
resplist = []
code_list = []
count = 0

with open('BADURLs.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:

        try:
            urls = row[0]
            request = requests.get(urls)
            request_code = request.status_code
            count = count + 1
            print(count)
            if request_code == 404:
                urllist_404.append(urls)
                resplist.append(request.elapsed)
                code_list.append(request_code)
        except:
            break
        df = DataFrame({'URL': urllist_404, 'Response Code': code_list, 'Response_Time': resplist})
        df.to_excel('Error_404_list.xlsx')

【问题讨论】:

  • 请在 for 循环和 except 块中添加 try-except 块“添加 break 关键字”并停止循环执行,然后保存结果副本,这将解决您的问题
  • 你的问题解决了吗?
  • 非常感谢..我试过了,但它不会追加行位 9noy 覆盖第一行你可以更新代码吗??
  • 你能更新你尝试过的sn-ps吗?
  • 您好,感谢您的帮助,我已经更新了 sn-p,请检查并告诉我这里出了什么问题

标签: python-3.x


【解决方案1】:
from pandas import DataFrame
import csv
import requests
import openpyxl

urllist_404 = []
resplist = []
code_list = []
count = 0

with open('urlpages1.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
        urls = row[0]
        response = requests.get(urls)
        get_response_code = response.status_code
        if get_response_code == 404:
            urllist_404.append(urls)
            resplist.append(response.elapsed)
            code_list.append(get_response_code)
        df = DataFrame({'URL': urllist_404, 'Response Code': code_list, 'Response_Time': resplist})
df.to_excel('Error_404_list.xlsx')

我使用了一个带有 4 个 URL 的示例 csv 文件(google.com 的 3 个和 google.com/badpage 的第 4 个 - 给出 404)。我在这个 csv 上应用了上面的代码,新的 xlsx 文件将具有最后一个 url,因为它具有 404 响应代码。

URL Pages Image New

Error 404 List xlsx Image New

【讨论】:

  • 我认为它只会将一行添加到 excel 文件中,而不是附加所有带有错误的 url...意味着只覆盖行
  • @mangesh 我很抱歉弄乱了最后一行的缩进。它应该在左边,与“with open”的行缩进对齐。我现在在同一篇文章中编辑了代码。你能检查一下吗?这应该适用于已完成的编辑。
  • 我在两台 PC 上运行相同的代码,其中一台在一台 PC 上运行,但在另一台使用相同的 Python 版本 3.10 和 Pycharm 或 Visual Studio 代码时出现此错误:screenshot can你帮助这里可能出了什么问题
  • @mangesh 您是否将 csv 文件保存为 csv utf-8 格式?如果是这样,我遇到了你提到的错误。而如果它只是 .csv,我不会遇到任何代码错误。我只有一台机器可以使用,所以我排除了多机测试。正如我所看到的,这可能是由于 csv-utf8 保存格式。还有其他见解吗?
  • 我使用 excel 2019 创建了 csv 文件,不确定 unicode..但无论如何我都会检查一下..尽管在我的另一台 PC 上代码工作正常
猜你喜欢
  • 2016-07-04
  • 1970-01-01
  • 2015-12-02
  • 2015-08-28
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 2018-04-23
相关资源
最近更新 更多