我想在html
之后的de中提取单词WHITE<p class="current">(WHITE)</p>
我正在使用python-scrapy,它只能用Xpath提取。使用chrome,我得到xpath:
//*[@id="addToCart_pdp"]/div[3]/div[1]/p
使用scrapy我得到了
hxs.select('//*[@id="addToCart_pdp"]/div[3]/div[1]/p')
>> [<HtmlXPathSelector xpath='//*[@id="addToCart_pdp"]/div[3]/div[1]/p' data=u'<p class="current"></p>'>]
但是不能从中获得白色字样。
答案 0 :(得分:0)
select
方法返回XPathSelectorList对象 - 基本上它是XPathSelector
个对象的python列表(几乎没有其他方法)。
要从HtmlXPathSelector
对象获取文本,您应该更改xpath以获取text()
并调用extract()
方法:
text = hxs.select('//*[@id="addToCart_pdp"]/div[3]/div[1]/p/text()').extract()[0]
希望有所帮助。
答案 1 :(得分:0)
请尝试以下几行:
from scrapy.selector import Selector
然后在你的请求回调函数内(函数名称将解析在一个蜘蛛内)添加以下两行:
sel = Selector(response)
print sel.xpath("//p[@class='current']//text()").extract()
这应该是你想要的。