我正在尝试读取包含长urls列表的csv文件。我需要遍历列表并获得抛出301、302或404响应的urls。在尝试测试脚本时,我得到了一个带有代码0的退出,所以我知道它是没有错误的,但它并没有按照我需要的方式运行。我是python的新手,并且使用文件,我的经验主要是ui自动化。如有任何建议,我们将不胜感激。下面是代码。
import csv
import requests
import responses
from urllib.request import urlopen
from bs4 import BeautifulSoup
f = open('redirect.csv', 'r')
contents = []
with open('redirect.csv', 'r') as csvf: # Open file in read mode
urls = csv.reader(csvf)
for url in urls:
contents.append(url) # Add each url to list contents
def run():
resp = urllib.request.urlopen(url)
print(self.url, resp.getcode())
run()
print(run)发布于 2020-11-11 02:37:36
假设您有一个类似以下内容的CSV (标题为URL)
URL
https://duckduckgo.com
https://bing.com您可以使用requests library来做这样的事情。
import csv
import requests
with open('urls.csv', newline='') as csvfile:
errors = []
reader = csv.DictReader(csvfile)
# Iterate through each line of the csv file
for row in reader:
try:
r = requests.get(row['URL'])
if r.status_code in [301, 302, 404]:
# print(f"{r.status_code}: {row['url']}")
errors.append([row['url'], r.status_code])
except:
pass如果希望在终端中查看结果,请取消对print语句的注释。此时的代码将URL和状态代码的列表附加到errors列表中。如果愿意,您可以打印或继续处理此文件。
https://stackoverflow.com/questions/64774564
复制相似问题