2011-01-13 268 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'] 
相关问题