Я не могу вычеркнуть конкретный заголовок с сайта - PullRequest
0 голосов
/ 16 апреля 2019

Я использую scrapy для очистки данных с сайта Amazon и когда я использую гаджет-селектор, чтобы показать путь к классу заголовка, чтобы он не извлекал этот заголовок.Вместо этого, когда я использую {.s-access-title} для класса, он работает.Я не уверен, почему гаджет селектора показывает неправильный путь.

import scrapy
from ..items import AmazonsItem


class AmazonSpiderSpider(scrapy.Spider):
    name = 'amazon_spider'
    start_urls = \['https://www.amazon.in/s?k=agatha+christie+books&crid=3MWRDVZPSKVG0&sprefix=agatha%2Caps%2C269&ref=nb_sb_ss_i_1_6'\]

    def parse(self, response):

        items =  AmazonsItem()

        product_name = response.css('.s-access-title').extract()][1]

страница amazon Если вы посмотрите на это изображение, я выбираю только заголовок, но у него другой класс, и он не работает, когда я использую этот класс.Так как же извлечь из этого заголовок определенного класса?Если у вас есть опыт работы с селекторными гаджетами, пожалуйста, посмотрите.Также, если у кого-то есть другая идея о том, как извлечь это, пожалуйста, сообщите

1 Ответ

1 голос
/ 16 апреля 2019

Попробуйте это: название в data-attribute:

import scrapy
from ..items import AmazonsItem

class AmazonSpiderSpider(scrapy.Spider):
    name = 'amazon_spider'
    start_urls = ['https://www.amazon.in/s?k=agatha+christie+books&crid=3MWRDVZPSKVG0&sprefix=agatha%2Caps%2C269&ref=nb_sb_ss_i_1_6']

    def parse(self, response):
        items =  AmazonsItem()
        products_name = response.css('.s-access-title::attr("data-attribute")').extract()
        for product_name in products_name:
            print(product_name)
        next_page = response.css('li.a-last a::attr(href)').get()
            if next_page is not None:
                next_page = response.urljoin(next_page)
                yield scrapy.Request(next_page, callback=self.parse)

вывод:

'Murder on the Orient Express (Poirot)'
'And Then There Were None'
.
.
...