我从here
获取一个列表<div class="con">
<div style="float:left; width:100px; text-align:center; height:100px"><div class="photoBox" style=" overflow:hidden; width:84px; height:84px;"><a href="/b/mesa_az/1220832011"><img src="/theme/default/images/no_img/business/b__80x80"></a></div></div>
<div style="float:left; padding-left:10px; width:550px;">
<div style="float:left;"><h3><a href="/b/mesa_az/1220832011"><b>Stamps</b> Automotive Enterprises</a></h3> </div><div style="float:right;"><em>Rating:</em> <span style="color:#333; font-size:14px; font-weight:bold;">0</span> <img src="/theme/default/images/star/stars_00.gif" width="74" height="15"></div>
<div id="clear">
<div style="float:left">
<a href="/c/mesa_az/locindustry/">Local Industry</a> / <a href="/c/mesa_az/locindustry/heavyconstruct/">Heavy Construction</a><br>
<address>15001 S Power Rd # 1 <br>
Mesa, AZ 85212 </address>
</div>
<div style="float:right;"><h5>Click: 8 Reviews: 0 </h5></div>
</div>
</div>
</div>
现在在循环中我必须搜索是否有文本 Cool Biz Name ,获取它的URL
我正在尝试关注,但每次迭代都会获得所有链接:
b_list = tree.xpath('//*[@class="con"]')
for biz in b_list:
link = biz.xpath('//h3/text()')
print(link)
如何让xPath
遍历DOM
内的biz
?
由于
答案 0 :(得分:1)
内部XPath必须以点开头才能特定于上下文。此外,如果您还想获取节点子节点的文本,则需要使用.text_content()
:
b_list = tree.xpath('//*[@class="con"]')
for biz in b_list:
link = biz.xpath('.//h3')[0].text_content()
print(link)
您还可以使用findtext()
方法:
biz.findtext('h3')