Удаление элементов HTML между :: before и :: after с помощью scrapy и xpath - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь удалить некоторые ссылки с веб-страницы на python с помощью scrapy и xpath, но элементы, которые я хочу удалить, находятся между :: before и :: after, поэтому xpath не может их видеть, так как их нет в HTML, но динамически создаются с помощью JavaScript. Есть ли способ отменить эти элементы?

::before
<div class="well-white">...</div>
<div class="well-white">...</div>
<div class="well-white">...</div>
::after

Это фактическая страница http://ec.europa.eu/research/participants/portal/desktop/en/opportunities/amif/calls/amif-2018-ag-inte.html#c,topics=callIdentifier/t/AMIF-2018-AG-INTE/1/1/1/default-group&callStatus/t/Forthcoming/1/1/0/default-group&callStatus/t/Open/1/1/0/default-group&callStatus/t/Closed/1/1/0/default-group&+identifier/desc

1 Ответ

0 голосов
/ 12 сентября 2018

Я не могу воспроизвести ваше точное состояние документа.
Однако, если вы загрузите страницу, вы увидите, что какой-то язык шаблонов загружен в том же формате, что и ваши данные примера: enter image description here

Также, если вы проверите сетевой инспектор XHR, вы увидите, что выполняются некоторые запросы AJAX для данных json: enter image description here

Таким образом, вы можете загрузить все нужные данные вудобный формат JSON здесь:

http://ec.europa.eu/research/participants/portal/data/call/amif/amif_topics.json

scrapy shell "http://ec.europa.eu/research/participants/portal/data/call/amif/amif_topics.json"
> import json
> data = json.loads(response.body_as_unicode())
> data['topicData']['Topics'][0]
{'topicId': 1259874, 'ccm2Id': 31081390, 'subCallId': 910867, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...