python-3.x - 如何捕获新页面 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")
解决方案
看起来该网站正在新选项卡中打开启动屏幕,因此您必须切换到当前选项卡
self.driver.switch_to.window(driver.window_handles[1])
或者你通过Xpath找到URL"//*[@id='persona-results']//a[@class='img-wrap']"
直接打开不点击,这样会更快
推荐阅读
- android - React Native Android 深度链接 url 未通过
- angular - PWA Angular 应用程序名称在部署后停留在旧名称上 - 如何强制更新?
- ruby-on-rails - Rails 是否从发布请求的参数键中删除问号?
- wordpress - 如何阻止 x-robots-tag 在我的整个网站上设置 noindex?
- python - 试图将 pd.date_range 合并到我的 python 分析中
- vb.net - vb.net / C# 外部处理程序
- android - 如何在 Android 上管理 startActivityForResult?
- php - What encoding is the resulting string if I concatenate a UTF-8 encoded string with an ASCII string in PHP?
- ios - “provideCredentialWithoutUserInteractionForIdentity:”不起作用
- validation - 错误消息 Multi Part Identifier could not be bound