gpt4 book ai didi

python - 遍历pyquery中的对象

转载 作者:太空狗 更新时间:2023-10-29 17:21:25 24 4
gpt4 key购买 nike

我正在使用 Python 的 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 运算符?

------更新--------

我找到了一个“每个”function in the pyquery docs .但是,我不明白如何将它用于我想要的。假设我只想打印出 <h3> 的内容.这会产生语法错误:为什么?

formwraps.each(lambda e: print e("h3").text())

最佳答案

pyquery 1.2.3 ( commit ),您可以使用 PyQuery 对象的 items() 作为 PyQuery 对象遍历每个项目:

print(type(formwraps.items()))
for my_div in formwraps.items():
print(my_div("h3").text())

items() 方法返回一个generator,这将适用于 Python 2 和 3。

关于python - 遍历pyquery中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com