2013-01-23 29 views
1

我是Python的新手,我試圖從網站中獲取xml文件並將它們加載到數據庫中。我一直在Python中使用Beautiful Soup模塊,但是我無法使用我想要的特定XML文件。 在網站源代碼,它看起來如下:Python中的正則表達式從網站上的數據

<a href="ReportName I want 20130101.XML">ReportName.XML</a> 
<a href="ReportName I want 20120101.XML">ReportName.XML</a> 
<<a href="ReportName I dont want 123.XML">ReportName.XML</a> 

以下顯示我在Python代碼。這將帶回'href'標籤的所有內容,而我想過濾'報告我想要的名稱dddddddd'中的文件。我嘗試過使用正則表達式,例如'href = \ s \ w +',但無效,因爲它返回NONE。當我使用Python它的findall(「href」屬性)它拉回到整個字符串,但我想篩選就在XML方面的任何幫助表示讚賞

from bs4 import BeautifulSoup 
import urllib 
import re 

webpage=("http://www.example.com") 
response=urllib.urlopen(webpage).read() 
soup=BeautifulSoup(response) 



for link in soup.find_all('a'): 
    print(link.get('href') 

。我嘗試了findall('href \ MarketReports')和findall('href \ w +')等代碼的變體,當我運行代碼時,將返回「None」。

任何幫助表示讚賞

+0

你能提供一個可重複的例子(如XML或摘錄的代碼),更重要的是你使用的確切代碼? –

+0

你要找的輸出是什麼? – jdotjdot

+1

另外,除非我弄錯了,'findAll(「href」)''不會給你這個標籤,'findAll(「a」)'會。 –

回答

2

我並不完全清楚你要找什麼,但如果我理解正確的話,你只想要得到ReportName.XML,在這種情況下,這將是:

find('a').text 

如果你要尋找的「/MarketRepoerts/ReportName.XML」,那麼這將是:

find('a').attrs['href'] 
+0

'attrs'不能與'href'一起使用 – user1966593

+0

那麼,那是因爲你找到的特定標籤沒有'href'屬性。 ''href''絕對是''attrs'字典。 – jdotjdot

+0

謝謝jdotjdot,我試圖讓我的頭圍繞Python – user1966593

0

我用下面的代碼,它是能夠找到的報告,我需要他們。在谷歌介紹是與jdotjdot輸入一起有很大的幫助

http://www.youtube.com/watch?v=kWyoYtvJpe4

,我用來尋找我的XML是

import re 
import urllib 

webpage=("http://www.example.com") 
response=urllib.urlopen(webpage).read() 

print re.findall(r"Report I want\w+[.]XML",response)