[英]Python Looping through urls in csv file returns \ufeffhttps://
[英]Python: looping through urls in file
我試圖遍歷一個帶有 url 列表的文本文件,並讓我的 python 腳本解析文件中的每個 url。
該代碼只處理文件中的最后一行,而它應該處理每一行並將結果寫入文件 append。
我不知道該怎么做,感謝您的幫助。 謝謝!
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")
也許您不應該每次都將feedparser.parse()
返回的值分配給同一個變量?
至少對於您當前的縮進,這是循環內唯一發生的事情。 statusupdate = d.entries[0].description
只運行一次並對d
的最后一個值進行操作,因為它在循環之外。
您的程序中有幾個問題
我的建議是將 output 文件的 open 語句保留在循環之外,並且您的所有語句都應該以某種方式縮進,以便它的循環部分迭代輸入文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.