python - Scrapy 不进入解析方法

标签 python selenium web-scraping web-crawler scrapy

我不明白为什么这段代码没有进入解析方法。 它与文档中的基本蜘蛛示例非常相似:http://doc.scrapy.org/en/latest/topics/spiders.html 而且我很确定这在当天早些时候有效...不确定我是否修改了某些内容..

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)

最佳答案

您的 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 列表。没有它,蜘蛛将不知道从哪里开始,什么也做不了。

关于python - Scrapy 不进入解析方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899708/

相关文章:

java - Pydoop 作业未运行

python - SQLAlchemy 与 PostgreSQL 和全文搜索

r - 如何使用 R 从网站中提取表格数据

python - 机器人框架扩展 Selenium 来处理加载元素

r - 使用 rvest 抓取时如何重用 session 以避免重复登录?

python - 如何使用 beautiful soup 来抓取网站来迭代并获取所有值?

python - 从第二个函数调用返回相同的值

python - 按分钟分组索引并计算平均值

java - 如何在两种情况下正确执行 WebDriverWait

python - 为什么 text、innerText、innerHTML 在 selenium 中返回空