我有一個Python腳本實現BeautifulSoup解析同一目錄中的XML文件。我想用完全相同的XML格式解析網站上的很多頁面。我想爲腳本提供一個可以獲取頁面XML並解析它的URL,而不是下載每個XML並在原始代碼中更改xml_file
。這是我的代碼所需要的。我正嘗試用取得頁面xml的腳本替換xml_file="somefileID.xml"
。檢索頁面的XML解析Python
#The program just goes through and pulls info from different tags.
from bs4 import BeautifulSoup
xml_file="somefileID.xml" #get this ID from the page using a script somehow??
#Then somehow put that id you got into "http://someurl.com/"+xml_file
xml_string = open(xml_file).read() #go on to read your new xml file
#Status
soup = BeautifulSoup(xml_string)
status = soup.find('some-tag')['some-attribute']
print "\nSome Prompt: "+attribute+"\n"
print "Most Recent Event Information: \n"
#Most Recent Event Date
event_date = lambda x: x.name == "date"
events = soup.findAll(event_date)
if(events):
# The last event-data
print "Date: "+events[-2].text
print "Analysis Complete."
感謝您的任何想法!
您是從一個XML文檔開始,該文檔引用了其他文檔,並且您想要解析第一個文檔,並獲取並解析所有鏈接的文檔?如果是這樣,這基本上與HTML抓取相同,所以你可能想看看一個抓圖庫。但是對於簡單的情況,自己編寫它很容易。 – abarnert
否XML文檔沒有引用。這裏是我的上下文:我提供了一個帶有頁面ID(例如:EP0972029,EP0972114,EP0974655等)的Excel頁面,它們對應於頁面URL(http://site.com/EP0972029 ...等等)。我需要,而不是*下載*這些XML,查看頁面的XML,並將這些信息帶入腳本。我不想下載數以千計的頁面,而是讓腳本查看頁面的XML並解析它們。截至目前的頁面都是HTML格式的,只給我下載XML的選項。有一些我可以看到它 – sdweldon
你是什麼意思的「觀點」?你的意思是你只是想把它們下載到內存或臨時文件中,處理它們,然後扔掉它們,所以你只能坐在一起而不是成千上萬個。如果是這樣,這很容易 - 事實上,這只是ToxicTeacakes的單線。 'xml_file'不是磁盤上的實際文件,它完全在內存中,但仍然可以從它讀取(),就像它創建一個文件一樣。 – abarnert