我正试着用BeautifulSoup4从维基百科上抓取一些东西,不幸的是,我无法通过一个findAll电话,我有一项工作要做,但是我想了解为什么这个电话不能工作。
样本代码:
from bs4 import BeautifulSoup
import requests
import lxml
html = requests.get('http://en.wikipedia.org/wiki/Brazil_national_football_team').text
soup = BeautifulSoup(html, "html.parser")
title = "Edit section: Current squad"
print "findAll method : " , soup.findAll("a",{"title",title})
results = soup.findAll("a")
for r in results:
if r.attrs.has_key('title'):
if r.attrs['title']=='Edit section: Current squad':
print "for if if method : ",r['href']样本输出:
findAll method : []
for if if method : /w/index.php?title=Brazil_national_football_team&action=edit§ion=35因此,我使用“for if”方法的替代代码确实返回了正确的'a href‘,但是漂亮汤变体没有返回。
我做错了什么?
发布于 2014-05-02 21:51:10
您在字典语法上犯了一个错误:
soup.findAll("a",{"title",title})
# ----------------------^您在集合中传递,而不是在那里传递字典;将,替换为:
soup.findAll("a",{"title":title})或者,只需使用关键字参数:
soup.findAll("a", title=title)演示:
>>> soup.findAll("a",{"title",title})
[]
>>> soup.findAll("a",{"title":title})
[<a href="/w/index.php?title=Brazil_national_football_team&action=edit&section=35" title="Edit section: Current squad">edit</a>]
>>> soup.findAll("a", title=title)
[<a href="/w/index.php?title=Brazil_national_football_team&action=edit&section=35" title="Edit section: Current squad">edit</a>]https://stackoverflow.com/questions/23437496
复制相似问题