首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >findAll("a",{"title","<title value>"})不返回元素

findAll("a",{"title","<title value>"})不返回元素
EN

Stack Overflow用户
提问于 2014-05-02 21:49:18
回答 1查看 79关注 0票数 0

我正试着用BeautifulSoup4从维基百科上抓取一些东西,不幸的是,我无法通过一个findAll电话,我有一项工作要做,但是我想了解为什么这个电话不能工作。

样本代码:

代码语言:javascript
复制
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']

样本输出:

代码语言:javascript
复制
findAll method :  []
for if if method :  /w/index.php?title=Brazil_national_football_team&action=edit&section=35

因此,我使用“for if”方法的替代代码确实返回了正确的'a href‘,但是漂亮汤变体没有返回。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 21:51:10

您在字典语法上犯了一个错误:

代码语言:javascript
复制
soup.findAll("a",{"title",title})
#  ----------------------^

您在集合中传递,而不是在那里传递字典;将,替换为:

代码语言:javascript
复制
soup.findAll("a",{"title":title})

或者,只需使用关键字参数:

代码语言:javascript
复制
soup.findAll("a", title=title)

演示:

代码语言:javascript
复制
>>> soup.findAll("a",{"title",title})
[]
>>> soup.findAll("a",{"title":title})
[<a href="/w/index.php?title=Brazil_national_football_team&amp;action=edit&amp;section=35" title="Edit section: Current squad">edit</a>]
>>> soup.findAll("a", title=title)
[<a href="/w/index.php?title=Brazil_national_football_team&amp;action=edit&amp;section=35" title="Edit section: Current squad">edit</a>]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23437496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档