2011-01-13 267 views
0

夥計們請幫我解決下一個問題。 我需要找到一些關鍵的(字符串)鏈接,我用下面的代碼:在BeatifulSoup.findAll('a')中搜索字符串的最佳方式

import urllib2, re 
from BeautifulSoup import BeautifulSoup 

url = 'http://5pd.ru' 
page = urllib2.urlopen(url) 
soup = BeautifulSoup(page) 
print soup.findAll('a') 
for link in soup.findAll('a'): 
    if '5' in link: 
      print link 

它不返回任何

但在這個例子中:

site_list = ['http://extra1.ru/', 'http://5pd.ru/', 'http://google.ru/', 'http://fun.ru/'] 
for i in site_list: 
    if '5' in i: 
     print i 

它回到正確鏈接

我只是想了解最正確的方法來驗證該鏈接包含我的字符串。 也許我應該用湯soup.findAll('一')?

回答

2

鏈接不是字符串。使用鏈接[「href」屬性],而不是鏈接在for循環或強制轉換爲字符串STR(鏈接)

+0

謝謝你,那是以前,但我似乎愚蠢和忘記它。但是什麼類型的對象有鏈接,沒有['href']? – kurd

+0

打印鏈接.__ class__

2

的findAll()的正則表達式:

for link in soup.findAll('a', href=re.compile('5')): 
    print link['href'] 
相關問題