首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增量分页值Scraping+Selenium

增量分页值Scraping+Selenium
EN

Stack Overflow用户
提问于 2022-03-27 16:27:22
回答 1查看 69关注 0票数 1

我正在尝试使用Selenium+Scrapy来抓取一个以恐龙方式生成的网站。

我已经成功地从第一页抓取了条目,但是当我试图进入下一页时,为selenium生成的浏览器似乎总是在搜索同一个页面。

我想做的是:

1.-执行解析函数以提取第一页数据。

2.-提取完成后,搜索next按钮并获取href属性。

3.-再次调用发送新url的相同函数。

代码语言:javascript
复制
import scrapy
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class IndeedSpiderSpider(scrapy.Spider):
    name = "indeed"
    allowed_domains = ["es.indeed.com"]

    def start_requests(self):
        url = "https://es.indeed.com/jobs?q&l=Barcelona"
        yield scrapy.Request(url=url, callback=self.parse_jobs)
    
    def parse_jobs(self, response):
        driver = webdriver.Firefox()
        driver.get("https://es.indeed.com/jobs?q&l=Barcelona")
        driver.implicitly_wait(10)
        offersnames=driver.find_elements(By.XPATH, "//td/div/h2/span")

        for i in range(len(offersnames)):
            yield {
                "name": offersnames[i].text
            }

        next_page_element = driver.find_element(By.CSS_SELECTOR, "ul.pagination-list > li:last-child > a")
        next_page_url=next_page_element.get_attribute("href")
        if next_page_url:
            next_page = response.urljoin(next_page_url)
            yield scrapy.Request(url=next_page, callback=self.parse_jobs)

        driver.quit()
EN

回答 1

Stack Overflow用户

发布于 2022-03-28 01:31:47

而不是使用scrapy.Request,您应该使用单击事件。一般结构应该是;等待页面完全加载;等待按钮在页面上显示。然后点击按钮。然后获取更新的页面,如下所示:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.example.com")
btn = driver.find_element_by_id('input-search')
btn.click()
time.sleep(2) 
print(driver.page_source.encode('utf-8'))

我没有运行代码,但是在这些行上有一些代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71638149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档