在用Scrapy爬取数据时需要用XPath确定路径,对于网页结构不熟悉的童鞋,需要认真找标签之间的嵌套关系,来确定所要提取内容的路径。一个简单的方法是,可以直接用Chrome的检查来Copy这个XPath的路径。
方法见这篇文章 《再谈Scrapy抓取结构化数据》
在文章中提到的小技巧,就是使用Chrome“检查”-- 找到要抓取的内容,右键 “Copy” -- “Copy XPath”
但是Copy出来的路径,是不能直接使用的,它默认是从最近的一个带id的标签开始。如果没有它会从 html
标签开始计算路径。
以“小猪短租” 的房租信息为例:
http://sh.xiaozhu.com/search-duanzufang-p1-0/
copy 房租价格的XPath路径是:
//*[@id="page_list"]/ul/li[1]/div[2]/span[1]/i
显然循环点选取在li
(每个租房信息都包含在一个 li
中) 。在循环中路径就应该写:
info.xpath('div[2]/span[1]/i/text()')
我录了一段屏,看一下:
网友评论