Scrapy: экстракт HTML в виде строки внутри элемента - PullRequest
0 голосов
/ 06 апреля 2020

Я хочу извлечь HTML внутри dic. Например, в этом фрагменте HTML:

<div id="main"><h1><xyz>Title<xyz></h1></div>

я хочу извлечь содержимое div: <h1><xyz>Title<xyz></h1> в виде строки. Возможно ли это с помощью CSS o селекторов Xpath scrapy?

Спасибо:)

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

С XPath, используйте выделенную строку функции ():

string(//div[@id='main']/h1/xyz)

Вывод: «Заголовок»

РЕДАКТИРОВАТЬ: Для вывода всего пути, если вы ищете «Заголовок» :

concat(concat("<",name(//*[.="Title"]/parent::*),">"),concat("<",name(//*[.="Title"]),">"),string(//*[.="Title"]),concat("</",name(//*[.="Title"]),">"),concat("</",name(//*[.="Title"]/parent::*),">"))

Вывод: <H1><XYZ>Title</XYZ></H1>

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

Решение с селектором css невозможно, но довольно просто с xpath:

desired_str = selector.xpath("//div[@id='main']").extract()
...