首页 > 解决方案 > 如何捕获新页面 selenium scrapy 的 url

问题描述

我正在尝试开发一个网络抓取项目,在该项目中我抓取了一个名为 startup India 的网站,您可以在其中与初创公司建立联系,在这里我根据我选择的一些过滤器单击并单击每个初创公司以及当我单击每个启动我必须进入该启动并抓取它,但这里的问题是在控制台中我没有看到我想要抓取的 URL。

这是代码:

import scrapy
from selenium import webdriver
import os
import logging
class ProductSpider(scrapy.Spider):
    name = "product_spider"
    allowed_domains = ['https://www.startupindia.gov.in/']
    start_urls = ['https://www.startupindia.gov.in/content/sih/en/search.html?industries=sih:industry/advertising&states=sih:location/india/andhra-pradesh&stages=Prototype&roles=Startup&page=0']

    def __init__(self):
        cwd = os.getcwd()
        self.driver = webdriver.Chrome("C:/Users/RAJ/PycharmProjects/WebCrawler/WebCrawler/WebCrawler/spiders/chromedriver.exe")


    def parse(self, response):
        self.driver.get(response.url)


        next = self.driver.find_elements_by_css_selector('div#persona-results a')
        logging.info(next)

        for i in next:
            try:
                logging.info(i.click())
                logging.info(response.url)

                # get the data and write it to scrapy items
            except:
                print("Yolo")

标签: python-3.xseleniumweb-scrapingscrapy

解决方案


看起来该网站正在新选项卡中打开启动屏幕,因此您必须切换到当前选项卡

self.driver.switch_to.window(driver.window_handles[1])

或者你通过Xpath找到URL"//*[@id='persona-results']//a[@class='img-wrap']"直接打开不点击,这样会更快


推荐阅读