2015-05-02 164 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