使用Selector解析的结果和老师视频上讲的不一样

来源:14-11 获取和解析列表页 - 2

慕标5907691

2020-01-23

<ul class='nav-abstract nav-index'>
 <li><h3 class="fz12"><span>劳保用品 / 日杂 / 易耗品</span></h3><a href="link1.html">first item</a></li>
 <li><h3 class="fz12"><span>劳保用品 / 日杂 / 易耗品2</span></h3><a href="link2.html">second item</a></li>
 <li><h3 class="fz12"><span>劳保用品 / 日杂 / 易耗品3</span></h3><a href="link3.html">third item</a></li>
 <li><h3 class="fz12"><span>劳保用品 / 日杂 / 易耗品4</span></h3><a href="link4.html">fourth item</a></li>
 <li><h3 class="fz12"><span>劳保用品 / 日杂 / 易耗品5</span></h3><a href="link5.html">fifth item</a></li>
 </ul>

代码如下:

 sel = Selector(text=html) 
 all_li = sel.xpath("//ul[@class='nav-abstract nav-index']/li") 
 for li in all_li:      
 print(li.xpath("//h3/span/text()").extract()。 

解析结果:

 ['劳保用品 / 日杂 / 易耗品', '劳保用品 / 日杂 / 易耗品2', '劳保用品 / 日杂 / 易耗品3', '劳保用品 / 日杂 / 易耗品4', '劳保用品 / 日杂 / 易耗品5'] 
 ['劳保用品 / 日杂 / 易耗品', '劳保用品 / 日杂 / 易耗品2', '劳保用品 / 日杂 / 易耗品3', '劳保用品 / 日杂 / 易耗品4', '劳保用品 / 日杂 / 易耗品5'] 
 ['劳保用品 / 日杂 / 易耗品', '劳保用品 / 日杂 / 易耗品2', '劳保用品 / 日杂 / 易耗品3', '劳保用品 / 日杂 / 易耗品4', '劳保用品 / 日杂 / 易耗品5'] 
 ['劳保用品 / 日杂 / 易耗品', '劳保用品 / 日杂 / 易耗品2', '劳保用品 / 日杂 / 易耗品3', '劳保用品 / 日杂 / 易耗品4', '劳保用品 / 日杂 / 易耗品5'] 
 ['劳保用品 / 日杂 / 易耗品', '劳保用品 / 日杂 / 易耗品2', '劳保用品 / 日杂 / 易耗品3', '劳保用品 / 日杂 / 易耗品4', '劳保用品 / 日杂 / 易耗品5'] 

期望结果 :

'劳保用品 / 日杂 / 易耗品' 
'劳保用品 / 日杂 / 易耗品2'
 '劳保用品 / 日杂 / 易耗品3' 
 '劳保用品 / 日杂 / 易耗品4' 
 '劳保用品 / 日杂 / 易耗品5'
写回答

1回答

bobby

2020-01-25

print(li.xpath("//h3/span/text()").extract()。
改为 print(li.xpath("/h3/span/text()").extract()试试

0
2
bobby
回复
慕先生3279049
那你试试改为css选择器试试呢
2020-07-05
共2条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2377 学习 · 1158 问题

查看课程