抓取 http://sh.ganji.com/fang1 中的数据
在命令行中输入
~~~
scrapy shell http://sh.ganji.com/fang1/
~~~
可以用response查看是否抓取成功,如果返回200的数据,说明抓取成功了
~~~
>>> response
<200 http://sh.ganji.com/fang1/>
~~~
我们可以用view(response)来查看抓取的内容,在命令行中输入后,会用默认的浏览器打开抓取下来的网页
~~~
view(response)
~~~
如果我们要抓取网页中的某个数据,可以用response.xpath('元素/text()').extract()来获取,比如下面的命令就返回一个2600的文本
~~~
>>> response.xpath('//*[@id="puid-2996870036"]/dl/dd[5]/div[1]/span[1]/text()').extract()
['2600']
~~~
> 备注:xpath中的值,可以用谷歌浏览器打开网址后,按F12,在要抓取的目标上面Copy->copy xPath获取
如果我们要获取这个列表页中的所有价格数据,可以用上面的ID换成class获取一组元素,比如
~~~
>>> response.xpath("//div[@class='f-list-item ershoufang-list']/dl/dd[5]/div[1]/span[1]/text()").extract()
['2600', '3900', '4000', '6200', '2500', '3500', '2300', '50000', '4000', '2600', '4700', '2900', '2300', '2800', '3500', '2800', '7500', '5300', '4000', '3900', '1200', '1350', '6800', '1950', '5000', '1700', '5500', '1500', '5700', '3500', '2000', '13500', '1000', '27000', '1950', '1800', '3500', '1800', '1100', '4000', '4000', '1150', '2100', '1600', '3500', '3900', '3500', '3500', '3300', '4700', '3300', '3300', '3800', '1400', '3090', '3800', '4000', '2000', '2800', '3300', '3100', '3500', '3200', '3500', '1380', '3500', '3200', '2800', '1200', '7200', '2000', '3100', '2500', '1000', '2200', '900', '1800', '1300', '1650', '1650', '1700', '1800', '1800', '1100', '4300', '1200', '10000', '3300', '1800', '3500', '3500', '6800', '4700', '3000', '1280']
>>>
~~~
我们可以用len()来统计一共获取到几个,比如下面的代码统计出来是95个:
~~~
>>> len(response.xpath("//div[@class='f-list-item ershoufang-list']/dl/dd[5]/div[1]/span[1]/text()").extract())
95
~~~
不显示log,可以用
~~~
scrapy crawl --nolog xxx
~~~