как выбрать определенный c элемент внутри элементов с помощью scrapy - PullRequest
0 голосов
/ 23 апреля 2020
import scrapy

class rlgSpider(scrapy.Spider):
    name = 'bot'

    start_urls = [
    'https://rocket-league.com/trading?filterItem=0&filterCertification=0&filterPaint=0&filterPlatform=1&filterSearchType=1&filterItemType=0&p=1']

    def parse(self, response):
        data = {}
        offers = response.xpath('//div[@class = "col-3-3"]')
        for offer in offers:
            for item in offer.xpath('//div[@class = "rlg-trade-display-container is--user"]/div[@class = "rlg-trade-display-items"]/div[@class = "col-1-2 rlg-trade-display-items-container"]/a'):
                data['name'] = item.xpath('//div/div[@position ="relative"]/h2').extarct()
                yield data

Вот что я сделал до сих пор - это не работает хорошо. Он очищает URL-адрес, а не тег h2. Как мне это сделать, если он находится внутри такого большого количества элементов div?

1 Ответ

0 голосов
/ 25 апреля 2020

Чтобы разобрать хотя бы элемент скрапа, вам нужно начать свой xpath с "." иначе вы будете анализировать ответ, это правильный способ сделать это.

def parse(self, response):

    offers = response.xpath('//div[@class = "col-3-3"]')
    for offer in offers:
        for item in offer.xpath('.//div[@class = "rlg-trade-display-container is--user"]/div[@class = "rlg-trade-display-items"]/div[@class = "col-1-2 rlg-trade-display-items-container"]/a'):
            data = {}
            data['name'] = item.xpath('.//h2/text()').extarct_first()
            yield data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...