Я пытаюсь отказаться от сайта Startup-Индия - PullRequest
1 голос
/ 16 января 2020

Я знаю, что это не ошибка, но я не понимаю, как отменить стартовый сайт Индии, я пытаюсь нажать на какой-то сайт, указанный при запуске Индии, но я не могу нажать на них, потому что scrapy не может нажимать на сайты и любую имеющуюся у меня информацию можно удалить, только нажав эту ссылку.

import scrapy
from selenium import webdriver
import os

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")
        self.profile = []

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

        while True:
            next = self.driver.find_element_by_xpath('//*[@id="persona-results"]/div[1]/div/a/div[1]')

            try:
                next.click()

                # get the data and write it to scrapy items
            except:
                break

        self.driver.close()

Кстати, моя конечная цель - go получить все детали профиля, но я не знаю, как (PS: это первый раз, когда я занимаюсь веб-скребком)

1 Ответ

0 голосов
/ 16 января 2020

Это звучит как что-то похожее на учебник по документации Scrapy, как показано ниже. В общем, вы можете попытаться сослаться на #follow links to author pages, щелкнуть правой кнопкой мыши и осмотреть место, чтобы «щелкнуть», чтобы получить css / xpath на нужной веб-странице.

https://docs.scrapy.org/en/latest/intro/tutorial.html

Кроме того, вы можете поделиться тем, что у вас есть. Надеюсь, это поможет!

import scrapy


    class AuthorSpider(scrapy.Spider):
        name = 'author'

        start_urls = ['http://quotes.toscrape.com/']

        def parse(self, response):
            # follow links to author pages
            for href in response.css('.author + a::attr(href)'):
                yield response.follow(href, self.parse_author)

            # follow pagination links
            for href in response.css('li.next a::attr(href)'):
                yield response.follow(href, self.parse)

        def parse_author(self, response):
            def extract_with_css(query):
                return response.css(query).get(default='').strip()

            yield {
                'name': extract_with_css('h3.author-title::text'),
                'birthdate': extract_with_css('.author-born-date::text'),
                'bio': extract_with_css('.author-description::text'),
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...