2016-10-25 87 views
0

执行使用XPath与scrapy我不获取完整URLscrapy:不是的XPath返回完整URL @href

这里刮的网址是我使用的看着

scrapy壳

scrapy shell "http://www.ybracing.com/omp-ia01854-omp-first-evo-race-suit.html" 

我执行下面的XPath从壳

sel.xpath("//*[@id='Thumbnail-Image-Container']/li[1]/a//@href") 

选择并只获得一半HREF

[<Selector xpath="//*[@id='Thumbnail-Image-Container']/li[1]/a//@href" data=u'http://images.esellerpro.com/2489/I/160/'>] 

这里的HTML的代码段我在浏览器中

 <li><a data-medimg="http://images.esellerpro.com/2489/I/160/260/1/medIA01854-GALLERY.jpg" href="http://images.esellerpro.com/2489/I/160/260/1/lrgIA01854-GALLERY.jpg" class="cloud-zoom-gallery Selected" title="OMP FIRST EVO RACE SUIT" rel="useZoom: 'MainIMGLink', smallImage: 'http://images.esellerpro.com/2489/I/160/260/1/lrgIA01854-GALLERY.jpg'"><img src="http://images.esellerpro.com/2489/I/160/260/1/smIA01854-GALLERY.jpg" alt="OMP FIRST EVO RACE SUIT Thumbnail 1"></a></li>    

看着这里是从wget的

<li><a data-medimg="http://images.esellerpro.com/2489/I/513/0/medIA01838_GALLERY.JPG" href="http://images.esellerpro.com/2489/I/513/0/lrgIA01838_GALLERY.JPG" class="cloud-zoom-gallery Selected" title="OMP DYNAMO RACE SUIT" rel="useZoom: 'MainIMGLink', smallImage: 'http://images.esellerpro.com/2489/I/513/0/lrgIA01838_GALLERY.JPG'"><img src="http://images.esellerpro.com/2489/I/513/0/smIA01838_GALLERY.JPG" alt="OMP DYNAMO RACE SUIT Thumbnail 1" /></a></li>    

我曾试图改变我的XPath拉相同但仍然得到相同的结果

什么是造成这个,我能做些什么来解决它想了解而不是有人只是纠正我的xpath对我来说

对页面本身的一些想法我禁用JavaScript来查看如果js产生的一半但它不是。我也下载了wget的网页,确认网址是在orriginal HTML完整

我还没有任何其它测试的构建但我在CentOS的使用与2.7 scrapy 1.2.1 7

我GOOGLE只有找到人谁不能抢是因为JavaScript产生的飞行数据的数据,但我的数据是存在于HTML

回答

2

通过使用

sel.xpath("//*[@id='Thumbnail-Image-Container']/li[1]/a//@href") 

Selector实例的列表,在其中data字段只显示其所有内容的前几个字节(因为它可能很长)。

要检索的内容作为字符串(而不是Selector实例),您将需要使用像.extract.extract_first

>>> print(sel.xpath("//*[@id='Thumbnail-Image-Container']/li[1]/a//@href").extract_first()) 
http://images.esellerpro.com/2489/I/160/260/1/lrgIA01854-GALLERY.jpg 
+0

感谢完美地解释了它 –