我试图循环遍历一个包含 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")
我是一名优秀的程序员,十分优秀!