我正在用Python的pyquery抓取一个页面,我对它返回的类型感到困惑,特别是如何迭代结果列表。对pyquery中的对象进行迭代
如果我的HTML看起来有点像这样:
<div class="formwrap">blah blah <h3>Something interesting</h3></div>
<div class="formwrap">more rubbish <h3>Something else interesting</h3></div>
如何获得<h3>
标签内,一个接一个,所以我可以处理它们?我想:
results_page = pq(response.read())
formwraps = results_page(".formwrap")
print type(formwraps)
print type([formwraps])
for my_div in [formwraps]:
print type(my_div)
print my_div("h3").text()
这将产生:
<class 'pyquery.pyquery.PyQuery'>
<type 'list'>
<class 'pyquery.pyquery.PyQuery'>
Something interesting something else interesting
它看起来像有没有实际的迭代回事。我怎样才能单独提取每个元素?
来自新手的额外问题:围绕[a]
做什么的方括号?它看起来像它将一个特殊的Pyquery对象转换为列表。 []
是一个标准的Python运算符吗?
------ UPDATE --------
我找到了一个 '每个' function in the pyquery docs。但是,我不明白如何将其用于我想要的。假设我只想打印出<h3>
的内容。这会产生语法错误:为什么?
formwraps.each(lambda e: print e("h3").text())