Очистите динамическую c javascript страницу с контентом, используя python - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь очистить этот веб-сайт: 'https://ec.europa.eu/research/mariecurieactions/how-to/find-job_en', используя Python.

Сначала я заметил, что интересующая меня таблица на самом деле находится по этому адресу: https://ec.europa.eu/assets/eac/msca/jobs/import-jobs_en.htm

Однако запросы + BS4 дают мне источник страницы только в HTML. Я предполагаю, что это потому, что содержимое является динамическим c.

Поэтому я попытался очистить веб-сайт Selenium + BS4, но мне все еще удается очистить исходный код страницы.

from selenium.webdriver import Firefox
from bs4 import BeautifulSoup
import lxml

driver = Firefox()
url = 'https://ec.europa.eu/assets/eac/msca/jobs/import-jobs_en.htm'
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')

Как я могу очистить вышеупомянутый веб-сайт?

1 Ответ

0 голосов
/ 02 февраля 2020

Если вы go дальше, вы найдете реальные данные здесь: https://euraxess.ec.europa.eu/sites/default/files/exports/msca.xml Вот пример использования SimplifiedDo c.

from simplified_scrapy.request import req
from simplified_scrapy.simplified_doc import SimplifiedDoc
html = req.get('https://euraxess.ec.europa.eu/sites/default/files/exports/msca.xml') 
doc = SimplifiedDoc(html)
jobs = doc.selects('job-opportunity')
for job in jobs:
    print (job.select('job-id>text()'),job.select('job-title>text()'))

Результат:

367020 Early-Stage Researcher (ESR) 3-year PhD position - "Efficient intra-cavity and extra-cavity generation of beams with radial and azimuthal polarization in high-power thin-disk lasers" - Project: GREAT
377512 8 Short-term Early Stage Researcher positions available through the EvoCELL ITN (single cell genomics, evo-devo and science outreach)
383978 ESR (early stage researcher) for intelligent quality control cycles in Industry 4.0 process chains enabled by machine learning
......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...