【发布时间】:2020-08-13 15:54:33
【问题描述】:
我有一个脚本,它从文本文件中读取 url,执行请求,然后将所有响应保存在一个文本文件中。如何将每个响应保存在不同的文本文件中,而不是全部保存在同一个文件中?例如,如果我标记为 input.txt 的文本文件有 20 个 url,我想将响应保存在 20 个不同的 .txt 文件中,例如 output1.txt、output2.txt,而不仅仅是一个 .txt 文件。因此,对于每个请求,响应都会保存在一个新的 .txt 文件中。谢谢
import requests
from bs4 import BeautifulSoup
with open('input.txt', 'r') as f_in:
for line in map(str.strip, f_in):
if not line:
continue
response = requests.get(line)
data = response.text
soup = BeautifulSoup(data, 'html.parser')
categories = soup.find_all("a", {"class":'navlabellink nvoffset nnormal'})
for category in categories:
data = line + "," + category.text
with open('output.txt', 'a+') as f:
f.write(data + "\n")
print(data)
【问题讨论】:
-
您的缩进有误?这只会使用文件中的最后一行
-
@MZ 嗨,谢谢,你能指定哪些缩进吗?这段代码在我构建时运行良好
-
您回复的所有内容都应缩进
for line in map(str.strip, f_in):? -
@MZ 谢谢,创建列表时出错。现已修复
标签: python file beautifulsoup python-requests http-post