2013-11-26 160 views
0

我正在使用scrapy報廢craigslist並獲取所有鏈接,轉到該鏈接,存儲每個頁面的描述以及電子郵件的回覆。現在我已經寫了一個scrapy腳本,它通過craigslist/sof.com開啓,並獲得所有職位和url。我想進入每個網址並保存每個作業的電子郵件和說明。繼承人我的代碼:Scrapy遞歸地抓取craigslist

from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from craigslist.items import CraigslistItem 

class MySpider(BaseSpider): 
    name = "craig" 
    allowed_domains = ["craigslist.org"] 
    start_urls = ["http://sfbay.craigslist.org/npo/"] 
    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     titles = hxs.select("//span[@class='pl']") 
     for titles in titles: 
       title = titles.select("a/text()").extract() 
       link = titles.select("a/@href").extract() 
       desc = titles.select("a/replylink").extract 
       print link, title 

任何想法如何做到這一點?

+0

如何做到底是什麼?你的代碼有什麼問題,或者你需要更多的代碼? – rickhg12hs

+0

我需要更多的代碼。這段代碼很好。我想通過鏈接進行遞歸,然後刪除這些鏈接的數據。 – Scooby

回答

1

scrapy功能應該產生(或返回)Item/sRequest/s

返回的項目將根據配置是pipelined,下一蜘蛛步驟是通過與在回調領域的參考函數返回一個請求確定

從scrapy文檔:

def parse_page1(self, response): 
    return Request("http://www.example.com/some_page.html", 
         callback=self.parse_page2) 

def parse_page2(self, response): 
    # this would log http://www.example.com/some_page.html 
    self.log("Visited %s" % response.url) 
1

刮Craigslist網站是非法的按他們的政策:

機器人,蜘蛛,腳本,鏟運機,履帶等被禁止

來源:https://www.craigslist.org/about/terms.of.use

現在他們的API是另一個問題,但只得到每小時更新一次(所以有滯後時間爲1小時)。