Как убрать название предмета в функции скрапа? - PullRequest
1 голос
/ 08 мая 2019

При выполнении кодирования, это дает мне цену предметов, но название предметов такое же.Значит, это дает transcription_price: 245, а затем transcription_price: 240.Там должно быть caption_price и transcription_price.Почему и как решить эту проблему?

import scrapy
from .. items import FetchingItem
import re

class SiteFetching(scrapy.Spider):
name = 'Site'
start_urls = ['https://www.rev.com/freelancers/transcription',
          'https://www.rev.com/freelancers/captions']

def parse(self, response):
    items = FetchingItem()
    Transcription_price = response.css('#middle-benefit .mt1::text').extract()

    items['Transcription_price'] = Transcription_price

    def next_parse(self, response):
        other_items = FetchingItem()
        Caption_price = response.css('#middle-benefit .mt1::text').extract()

        other_items['Caption_price'] = Caption_price
        yield other_items

    yield items

1 Ответ

1 голос
/ 08 мая 2019

Ваш код никогда не достигает метода self.next_parse.По умолчанию Scrapy вызывает обратный вызов self.parse для каждого URL в self.start_urls.Вы можете использовать настраиваемый обратный вызов, переопределив метод start_requests.

Вот как вы это делаете:

import scrapy
from .. items import FetchingItem
import re

class SiteFetching(scrapy.Spider):
    name = 'Site'

    def start_requests(self):
        return [
            scrapy.Request('https://www.rev.com/freelancers/transcription', callback=self.parse_transcription),
            scrapy.Request('https://www.rev.com/freelancers/captions', callback=self.parse_caption)
        ]

    def parse_transcription(self, response):
        items = FetchingItem()
        Transcription_price = response.css('#middle-benefit .mt1::text').extract()

        items['Transcription_price'] = Transcription_price
        yield items

    def parse_caption(self, response):
        other_items = FetchingItem()
        Caption_price = response.css('#middle-benefit .mt1::text').extract()

        other_items['Caption_price'] = Caption_price
        yield other_items

См. Документацию Spider для получения дополнительной информации.

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