2012-07-20 33 views
0

我在scrapy中使用SgmlLinkExtractor功能來解析特定的URL。SgmlLinkExtractor和字符串中匹配詞的正則表達式

我重寫start_requests函數來抓取動態url。

這個樣子:

start_requests(個體經營): ..... 產量請求(url.strip(),callbackA)

回調什麼都不做,現在。

我還爲SgmlLinkExtractor實現了process_value,但它從未調用過。

這是我使用的規則:

規則= [規則(SgmlLinkExtractor(允許=()),回調= callbackB,請按照= TRUE),]

再次callbackB從來沒有所謂。

+0

歡迎堆棧溢出!你能解釋一下你迄今爲止所嘗試過的嗎? – 2012-07-20 07:45:33

+0

這就是我想要實現的: 我想掃描網站中的所有a和href標記,並執行一些邏輯來確定跳轉到該URL。 邏輯如下: 搜索鏈接或鏈接描述是否包含職業|作業(不區分大小寫) 如果是這樣創建一個鏈接來解析它。 - 鏈接可能包含../所以需要擺脫它們。 – DjangoPy 2012-07-20 07:58:15

+0

沒關係,但是你已經嘗試過什麼正則表達式?你的機器人工作?如果不是,你得到了什麼錯誤信息?你能發佈一個(小的,非常小的!)你想要解析的輸入和你的期望輸出的例子嗎? – 2012-07-20 08:00:05

回答

0

如果你的回調在你的蜘蛛聲明,那麼他們將不會有全球範圍內,你需要引用它們的作用域爲您的類self.

rules = [ 
    Rule(SgmlLinkExtractor(), callback=self.callbackB, follow=True), 
] 
相關問題