Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 故障排除属性错误:';结果集';对象没有属性';findAll';_Python_Beautifulsoup - Fatal编程技术网

Python 故障排除属性错误:';结果集';对象没有属性';findAll';

Python 故障排除属性错误:';结果集';对象没有属性';findAll';,python,beautifulsoup,Python,Beautifulsoup,我正在试图解析页面中所有的谈话名称。使用BeautifulSoup,以下是我所拥有的: import urllib2 from BeautifulSoup import BeautifulSoup page = urllib2.urlopen("http://www.ted.com/talks") soup = BeautifulSoup(page) link = soup.findAll(lambda tag: tag.name == 'a' and tag.findParent('d

我正在试图解析页面中所有的谈话名称。使用BeautifulSoup,以下是我所拥有的:

import urllib2

from BeautifulSoup import BeautifulSoup

page = urllib2.urlopen("http://www.ted.com/talks")

soup = BeautifulSoup(page)

link = soup.findAll(lambda tag: tag.name == 'a' and tag.findParent('dt', 'thumbnail'))

for anchor in link.findAll('a', title = True):
    print anchor['title']
最初的“链接”显示了一个由八个视频块组成的漂亮数组。然后,我试着使用上面的代码检查并取出标签中的标题,这给了我以下错误:

for anchor in link.findAll('a', title=True):
AttributeError: 'ResultSet' object has no attribute 'findAll'

我做错了什么?

link
是一个
标记
对象的集合,您需要对其进行迭代。例如:

for anchor in link:
    print anchor['title']

通过比较,pyparsing方法如下所示:

from contextlib import closing
import urllib2
from pyparsing import makeHTMLTags, withAttribute

# pull HTML from web page
with closing(urllib2.urlopen("http://www.ted.com/talks")) as page:
    html = page.read()

# define opening and closing tags
dt,dtEnd = makeHTMLTags("dt")
a,aEnd = makeHTMLTags("a")

# restrict <dt> tag matches to those with class='thumbnail'
dt.setParseAction(withAttribute(**{'class':'thumbnail'}))

# define pattern of <dt> tag followed immediately by <a> tag
patt =  dt + a("A")

# scan input html for matches of this pattern, and access
# attributes of the <A> tag
for match,s,e in patt.scanString(html):
    print match.A.title
    print match.A.href
    print

这会产生以下错误:打印['title']名称错误:名称'a'不正确defined@Adam对不起,那是个打字错误。现在修好了。看起来很迷人。谢谢知道我在哪里可以学到更多关于“锚定”语法的知识吗?示例:假设我想要的是标签,而不是标签。我会改变findAll(“img”)吗?只是想了解更多。谢谢你的额外视角:)
Bruce Schneier: The security mirage
/talks/bruce_schneier.html

Harvey Fineberg: Are we ready for neo-evolution?
/talks/harvey_fineberg_are_we_ready_for_neo_evolution.html

Ric Elias: 3 things I learned while my plane crashed
/talks/ric_elias.html

Anil Ananthaswamy: What it takes to do extreme astrophysics
/talks/anil_ananthaswamy.html

John Hunter on the World Peace Game
/talks/john_hunter_on_the_world_peace_game.html

Kathryn Schulz: On being wrong
/talks/kathryn_schulz_on_being_wrong.html

Sam Richards: A radical experiment in empathy
/talks/sam_richards_a_radical_experiment_in_empathy.html

Susan Lim: Transplant cells, not organs
/talks/susan_lim.html

Marcin Jakubowski: Open-sourced blueprints for civilization
/talks/marcin_jakubowski.html

Roger Ebert: Remaking my voice
/talks/roger_ebert_remaking_my_voice.html