Невозможно найти путь к селектору в Scrapy - PullRequest
0 голосов
/ 11 марта 2020

Каков наилучший способ найти путь для CSS или Xpath для получения определенного элемента из ответа HTML с использованием Scrapy?

Я пытаюсь собрать данные из щебет . Я использую Scrapy ( Я довольно новичок в этом ). Я пытаюсь найти путь селектора к твитам под data-testid="tweet", но каждый путь, который я пробую в оболочке scrapy, дает результат none_type. Сначала я попытался написать путь самостоятельно, но, думаю, я поступил неправильно. Затем я попытался щелкнуть правой кнопкой мыши и скопировать путь ( Я пробовал его с обоими CSS и Xpath ), но все равно не повезло.

Я ссылался на этот пост переполнения стека, но это тоже не сработало.

Ответы [ 2 ]

1 голос
/ 11 марта 2020

Вы получаете все твиты с помощью:

//div[@data-testid="tweet"]//div[@lang]

Чтобы получить текст и хэштеги для каждого твита, используйте строку функции:

string(//div[@data-testid="tweet"]//div[@lang])

Итерируйте с al oop, чтобы получите все, что вам нужно:

 string((//div[@data-testid="tweet"]//div[@lang])[i])

Если вы просто хотите текст (без хэштегов):

//div[@data-testid="tweet"]//div[@lang]/span[string-length(text())>1]
0 голосов
/ 11 марта 2020

Чтобы получить текст, вам нужно go глубже к адресу, где находится текст. Например:

response.xpath ("// div [@class = 'js -tweet-text-container'] / p [@ class = 'TweetTextSize TweetTextSize - normal js -tweet -text tweet-text '] / text () "). getall ()

Также работает:

response.xpath (" // p [@ class =' ​​TweetTextSize TweetTextSize - нормальный js -tweet-text твит-текст '] / text () "). Getall ()

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