Не удается получить данные таблицы с помощью Scrapy - PullRequest
0 голосов
/ 18 июня 2020

Это веб-сайт, и я хочу очистить данные таблицы, которые соответствуют Category и SubCategory.

https://www.adbc.gov.ae/BusinessActivityInfo/BusinessActivity.aspx?culture=en-US

введите описание изображения здесь

Я использую Scrapy и Selenium для очистки. Это мой код:

Импортируйте некоторые библиотеки:

import scrapy
from scrapy.selector import Selector
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from shutil import which
from selenium.webdriver.support.ui import Select

Основной код:

class AdbcSpiderSelenium(scrapy.Spider):
    name = 'adbc_selenium'
    allowed_domains = ['https://www.adbc.gov.ae/BusinessActivityInfo/BusinessActivity.aspx?culture=en-US']

    start_urls = [
        'https://www.adbc.gov.ae/BusinessActivityInfo/BusinessActivity.aspx?culture=en-US'
    ]

    def __init__(self):
        chrome_options = Options()
        chrome_options.add_argument("--headless")

        chrome_path = 'D:\\work\\crawl data\\selenium_project\\chromedriver.exe'

        driver = webdriver.Chrome(executable_path=chrome_path, options=chrome_options)
        driver.get("https://www.adbc.gov.ae/BusinessActivityInfo/BusinessActivity.aspx?culture=en-US")

        tab = Select(driver.find_element_by_id("ddlNatureId"))

        tab.select_by_value('ADVOCATE OFFICES')

        tab = Select(driver.find_element_by_id("ddlSubCategId"))

        tab.select_by_value('Advertising Agent')

        self.html = driver.page_source

        driver.close()

    def parse(self, response):
        resp = Selector(text=self.html)
        contents = resp.xpath('//*[@id="gvActivities"]/table//tr')
        for content in contents:
            yield {
                'code': content.xpath('td[1]//text()').get(),
                'name': content.xpath('td[2]//text()').get()
            }

Мой код пытается очистить данные таблицы, где Business Category = ADVOCATE OFFICES и Business SubCategory = Advertising Agent только изображение выше.

Код может работать, но он не возвращает никаких данных из таблицы. Что не так с моим кодом?

1 Ответ

1 голос
/ 18 июня 2020

Вот правильный путь xpath: //table[@id="gvActivities"]//tr

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...