2015-06-17 32 views
2

我不明白爲什麼這段代碼沒有進入解析方法。 這是很相似的,從文檔的基本蜘蛛例子:http://doc.scrapy.org/en/latest/topics/spiders.html 我敢肯定,這早些時候曾在一天......不知道如果我修改的東西或不..Scrapy不進入解析方法

from selenium.webdriver.support.wait import WebDriverWait 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium import webdriver 
from scrapy.spider import Spider 
from scrapy.selector import HtmlXPathSelector 
from scrapy import log 
from scrapy.selector import Selector 


class jobSpider(Spider): 
    name='jobSpider' 
    wd = webdriver.Chrome() 
    wd.get("some url") 
    wd.switch_to_frame("cible") 


def parse(self, response): 
    log.start() 

    wait = WebDriverWait(wd, 10).until(
    (EC.visibility_of_element_located((By.ID, 'blocResultat')))) 
    print(wd.page_source) 

    stuff=Selector(text=wd.page_source).xpath('//a[contains(@onclick,"win=window.o pen(\'JobOffs")]').extract() 
    print(stuff) 
+0

您在任何時候都不會調用解析。此外,你有自我作爲一個論點,它應該是一個班級的一部分? –

+0

http://doc.scrapy.org/en/latest/topics/spiders.html請參閱示例。無需調用它。並且他們也將自己當作論據 – dkx22

+1

您在此處的代碼不正確,或者您的縮進是錯誤的。請修正縮進與腳本中的縮進相同。 –

回答

2

parse(self, response):方法不是jobSpider類的一部分。如果你看看Scrapy documentation,你會發現parse方法需要成爲蜘蛛類的一種方法。

from selenium.webdriver.support.wait import WebDriverWait 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium import webdriver 
from scrapy.spider import Spider 
from scrapy.selector import HtmlXPathSelector 
from scrapy import log 
from scrapy.selector import Selector 


class jobSpider(Spider): 
    name='jobSpider' 
    wd = webdriver.Chrome() 
    wd.get("https://www.leforem.be/particuliers/offres-emploi-recherche-par-criteres.html?exParfullText=&exPar_search_=true&exParGeographyEdi=true") 
    wd.switch_to_frame("cible") 


    def parse(self, response): 
     log.start() 

     wait = WebDriverWait(wd, 10).until(
     (EC.visibility_of_element_located((By.ID, 'blocResultat')))) 
     print(wd.page_source) 

     stuff=Selector(text=wd.page_source).xpath('//a[contains(@onclick,"win=window.o pen(\'JobOffs")]').extract() 
     print(stuff) 

另外,你需要通過使用在類的任何數據self.前綴來引用您的parse方法的類數據。

此外,你錯過了蜘蛛的start_urls列表。沒有它,蜘蛛就不知道從哪裏開始,什麼都不會做。

+0

你能詳細說明嗎?身份仍然是錯的對不起,但解析集團更縮進,所以它在課堂上是正確的? – dkx22

+0

@ dkx22這是正確的。我會編輯我的答案,告訴你我的意思。 –

+0

仍然不工作,正如我所說,我相信這曾經工作。我仍然有一個文件,這個腳本早先給出了我的輸出結果,但我沒有使用自己......但是我仍然按照你的意見和響應波紋管的建議,但是不會:/ – dkx22

1

您必須訪問屬性selfparse是類的一部分。

def parse(self, response): 
    log.start() 
    wait = WebDriverWait(self.wd, 10).until(
    (EC.visibility_of_element_located((By.ID, 'blocResultat')))) 
    print(self.wd.page_source) 
    stuff=Selector(text=self.wd.page_source).xpath('//a[contains(@onclick,"win=window.o pen(\'JobOffs")]').extract() 
    print(stuff)