2015-05-02 77 views
-3

我正在尝试使用Scrapy编写抓取工具来抓取分类类型(目标)网站并从目标网站上的链接获取信息。关于Scrapy的教程只帮助我从目标URL获取链接,但不能获得我寻求的第二层数据收集。任何线索?如何抓取分类的网站

因此,例如,目标站点将是:

start_url = "http://newyork.craigslist.org/search/cta" 

和所有目标站点上我想去给每个上市,并获得价格和卖家,地点,电话或电子邮件

链接
+0

到目前为止你做了什么? – Jithin

+0

嗨,詹姆斯。我们试图鼓励新用户(以及所有人)展示他们的研究成果。我期望如果你在这里搜索,GitHub和网页通常你会发现CraigsList的某种形式。但是,请记住CraigsList公司可能对刮板的视角不清楚,因为运行一个是试图免费获取数据,以致其他人花费了大量时间和金钱进行组装。至少你需要在两次擦伤之间留下暂停,并且如果这是CraigLists的决定,那么接受IP封锁。 – halfer

回答

0
import scrapy 
from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.selector import Selector 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from urlparse import urljoin 


class CompItem(scrapy.Item): 
    name = scrapy.Field() 
    price = scrapy.Field() 
    location = scrapy.Field() 




class criticspider(CrawlSpider): 
    name = "craig" 
    allowed_domains = ["newyork.craigslist.org"] 
    start_urls = ["http://newyork.craigslist.org/search/cta"] 


    def parse(self, response): 
     sites = response.xpath('//div[@class="content"]') 
     items = [] 

     for site in sites: 
      item = CompItem() 
      item['name'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="pl"]/a/text()').extract(). 
      item['price'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="l2"]/span[@class="price"]/text()').extract() 
      item['location'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="l2"]/span[@class="pnr"]/small/text()').extract() 
      items.append(item) 
      return items 
+0

感谢John的帮助。有效! – James