Pytanie scrapy css selector: pobierz tekst wszystkich wewnętrznych znaczników


Mam tag i chcę uzyskać dostęp do całego tekstu. Robię to:

response.css('mytag::text')

Ale dostaje tylko tekst bieżącego tagu, ja też chcę uzyskać tekst ze wszystkich wewnętrznych znaczników.

Wiem, że mógłbym zrobić coś takiego:

response.xpath('//mytag//text()')

ale chciałbym to zrobić css selektory


14
2017-12-05 23:12


pochodzenie




Odpowiedzi:


response.css('mytag *::text')

The * odwiedzi wszystkie wewnętrzne znaczniki mytag i ::text otrzyma tekst każdego z nich


22
2017-12-05 23:14





Pobierz tekst tylko wybranego węzła.

response.css('mytag::text')

Pobierz tekst wybranego węzła i jego węzłów podrzędnych.

response.css('mytag ::text')

Zobacz różnicę między tymi dwiema wersjami. Jedyną różnicą jest przestrzeń. Jeśli nie ma spacji, zwracany jest tylko tekst / atrybuty bieżących węzłów. Jeśli istnieje przestrzeń, wówczas wybiera tekst / atrybuty węzłów własnych i potomnych

response.css('h1 a::attr(href)') # only current node attribute

response.css('h1 ::attr(href)') # current node and all child nodes attribute.

1
2018-04-28 11:25