gpt4 book ai didi

Python:循环遍历文件中的url

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:02 24 4
gpt4 key购买 nike

我试图循环遍历一个包含 url 列表的文本文件,并让我的 python 脚本解析文件中的每个 url。

代码只处理文件中的最后一行,而它应该处理每一行并将结果附加到文件中。

我不知道该怎么办,感谢您的帮助。谢谢!

import feedparser # pip install feedparser
from BeautifulSoup import BeautifulStoneSoup
from BeautifulSoup import BeautifulSoup
import re


urls = open("c:/a2.txt", "r") # file with rss urls

for lines in urls:

d = feedparser.parse(lines) # feedparser is supposed to process every url in the file(urls)


statusupdate = d.entries[0].description


soup = BeautifulStoneSoup(statusupdate)

for e in d.entries:
print(e.title)
print(e.link)
print(soup.find("img")["src"])
print("\n") # 2 newlines


# writes title,link,image to a file and adds some characters
f = open(r'c:\a.txt', 'a')
f.writelines('"')
f.writelines(e.title)
f.writelines('"')
f.writelines(",")
f.writelines('"')
f.writelines(e.link)
f.writelines('"')
f.writelines(",")
f.writelines('"')
f.writelines(soup.find("img")["src"])
f.writelines('"')
f.writelines(",")
f.writelines("\n")
f.close()

最佳答案

for lines in urls:
d = feedparser.parse(lines)

这个循环只是继续下去,并且不断地向变量d重新分配一些东西。这意味着,当循环完成时,d 将具有与最后一行关联的值。

如果您希望处理每一行,则需要对 d 的每个值执行某些操作。例如,您可以将每个 d.entries[0].description 放入列表中,然后迭代该列表来处理它。

<小时/>
urls = open("c:/a2.txt", "r") # file with rss urls
results = []
for lines in urls:
results.append(feedparser.parse(lines))
contents = []
for r in results:
statusupdate = r.entries[0].description
soup = BeautifulStoneSoup(statusupdate)
for e in r.entries:
contents.append((e.title, e.link, soup.find("img")["src"]))
with open(r'c:\a.txt', 'a') as f:
for c in contents:
f.writelines('"')
f.writelines(c[0])
f.writelines('"')
f.writelines(",")
f.writelines('"')
f.writelines(c[1])
f.writelines('"')
f.writelines(",")
f.writelines('"')
f.writelines(c[2])
f.writelines('"')
f.writelines(",")
f.writelines("\n")

关于Python:循环遍历文件中的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com