Селектор Xpath и CSS в Scrapy: почему данные хранятся по-разному? - PullRequest
0 голосов
/ 13 февраля 2019

Я могу использовать два разных метода для извлечения заголовка статьи: xpath vs. css.Они дадут мне такие же результаты, но есть одно отличие.Использование xpath сохранит данные (файл json) в квадратных скобках ["Some Title"], а селектор css просто сохранит данные без скобок "Some Title".Я на самом деле не хочу хранить данные в скобках. Как мне это сделать с помощью xpath?

Вот мой код для извлечения заголовка документа:

CSS Selector

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


    yield {
        'title': extract_with_css('div#title h2::text')           
          }

Xpath

 def parse_article(self, response):
    def extract_with_xpath(query):
        return response.xpath(query).extract() 


    yield {
        'title': extract_with_xpath('//div[@id="title"]/h2/text()') 
          }

1 Ответ

0 голосов
/ 13 февраля 2019

Измените свой код с extract() на get():

def extract_with_xpath(query):
    return response.xpath(query).get(default='').strip() 

Метод extract вернет все совпадения, а get только первый.

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