Scrapy使用xpath抓取ul类是行不通的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy使用xpath抓取ul类是行不通的相关的知识,希望对你有一定的参考价值。

我抓住这个网站https://movies.yahoo.com.tw/movieinfo_main.html/id=7819

我在我的终端上使用scarpy shell 'https://movies.yahoo.com.tw/movieinfo_main.html/id=7819'

我想抓住li ul下的六个enter image description here href

当我想得到li标签我输入命令response.xpath('//ul[@class="trailer_list imglist slick-initialized slick-slider"]/li')但得到一个空列表[]

我尝试输入这个命令response.xpath('//div[@class="l_box_inner"]/ul/li/a/@href').extract()这是我得到的:

In [14]: response.xpath('//div[@class="l_box_inner"]/ul/li/a/@href').extract()
Out[14]: 
[u'https://movies.yahoo.com.tw/name_main/1000',
 u'https://movies.yahoo.com.tw/name_main/2595',
 u'https://movies.yahoo.com.tw/video/%E9%81%8A%E6%88%B2%E5%A4%9C%E6%AE%BA%E5%BF%85%E6%AD%BB-%E4%B8%AD%E6%96%87%E9%A0%90%E5%91%8A-095130014.html?movie_id=7819',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189047',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189050',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189053',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189056',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189059',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189062',
 u'https://movies.yahoo.com.tw/post/169756772517/u5091u68eeu8c9du7279u66fcu6372u9032u5931u63a7u904au6232u591c-u5168u662fu4ed6u60f9u7684u798d']

但我只想得到六个href他们的身份是189047'189050'189053'189056'189059'189062

如果我只想获得li六个href,那么正确的xpath命令是什么?

任何帮助,将不胜感激。提前致谢。

答案

看起来目标ul在scrapy响应中与浏览器呈现的源相比具有更少的类:

response.xpath('//ul[@class="trailer_list imglist"]/li/a/@href').extract()

输出:

[u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189047',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189050',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189053',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189056',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189059',
 u'https://movies.yahoo.com.tw/movieinfo_photos.html/id=7819?movie_photo_id=189062']

以上是关于Scrapy使用xpath抓取ul类是行不通的的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫编程思想(149):使用Scrapy抓取数据,并通过XPath指定解析规则

Python爬虫编程思想(149):使用Scrapy抓取数据,并通过XPath指定解析规则

查找xpath祖父母(使用scrapy)

scrapy xpath选择器多级选择错误

scrapy爬虫-1-初试页面抓取

Xpath开始在Scrapy上重新调整无