Python: размер списка Scapy Selector увеличивает вызывающий текст () - PullRequest
1 голос
/ 07 мая 2020

Я хочу извлечь список имен документов ['document 1', 'document 2', 'document x'] из некоторых html:

<div class = "pdf_download">
<a href="https://example.com/document1.pdf">
    <img alt="Download PDF" src="download.jpg">
    Document 1
</a>
</div>
<div class = "pdf_download">
<a href="https://example.com/document2.pdf">
    <img alt="Download PDF" src="download.jpg">
    Document 2
</a>
</div>

Когда я пытаюсь использовать оба селектора css и xpath, два тега создают список из четырех, предположительно из-за тегов <img>, которые я не могу исключить:

response.xpath("//a[contains(@href, 'pdf')]/text()").extract()
# returns an empty list
# response.xpath("//a[contains(@href, 'pdf')]/*[not(self::img)]/text()").extract()
response.css(".pdf_download a:not(img)::text()").extract()

Вывод:

[\n\t\t\t\t\t\t\t\t\t\t,
\n\t\t\t\t\t\t\t\t\t\t,Document 1\n\t\t\t\t\t\t\t\t\t\t,
\n\t\t\t\t\t\t\t\t\t\t,
\n\t\t\t\t\t\t\t\t\t\t,Document 2\n\t\t\t\t\t\t\t\t\t\t]

Использование селекторов CSS или Xpath, есть ли способ извлечь список имен документов?

...