Как получить описание работы с помощью scrapy?

Я новичок в scrapy и XPath но программирование на Python на какое-то время. Я хотел бы получить email , name of the person making the offer и номер phone со страницы https://www.germanystartupjobs.com/job/joblift-berlin-germany-3-working-student-offpage-seo-french-market/ с использованием лучевой терапии. Как вы видите, электронная почта и телефон предоставляются как текст внутри <p> и это затрудняет извлечение.

Моя идея – сначала получить текст внутри Job Overview или, по крайней мере, весь текст, говорящий об этой соответствующей работе, и использовать ReGex для получения email , phone number и, если возможно, name of the person .

Итак, я выстрелил в scrapy shell с помощью команды: scrapy shell https://www.germanystartupjobs.com/job/joblift-berlin-germany-3-working-student-offpage-seo-french-market/ и получить response оттуда.

Теперь я пытаюсь получить весь текст из div job_description где я фактически ничего не получаю. я использовал

 full_des = response.xpath('//div[@class="job_description"]/text()').extract() 

Он возвращает [u'\t\t\t\n\t\t ']

Как получить весь текст с указанной страницы? Очевидно, задача будет позже, чтобы получить атрибуты, упомянутые ранее, но, во-первых, сначала.

Обновление: этот выбор возвращает только [] response.xpath('//div[@class="job_description"]/div[@class="container"]/div[@class="row"]/text()').extract()

введите описание изображения здесь

  • Как очистить эту веб-страницу с помощью Python и lxml? пустой список возвращен
  • XPath: выберите тег с пустым значением
  • Как заставить XPath возвращать «None» в Python, если данные не найдены?
  • Какую чистую библиотеку Python я должен использовать для очистки веб-сайта?
  • Scrapy и Xpath для извлечения данных из javascript-кода
  • Получить внутренний HTML элемента в lxml
  • Python Selenium: найти атрибуты объекта с помощью xpath
  • Python XPath SyntaxError: неверный предикат
  • One Solution collect form web for “Как получить описание работы с помощью scrapy?”

    Вы были рядом с

     full_des = response.xpath('//div[@class="job_description"]/text()').extract() 

    У div -tag фактически нет никакого текста кроме того, что вы получаете.

     <div class="job_description" (...)> "This is the text you are getting" <p>"This is the text you want"</p> </div> 

    Как вы видите, текст, который вы получаете с response.xpath('//div[@class="job_description"]/text()').extract() – это текст, который находится между div -tag, а не в между тегами внутри div -tag. Для этого вам понадобится:

     response.xpath('//div[@class="job_description"]//*/text()').extract() 

    Это означает, что он выбирает все дочерние узлы из div[@class="job_description] и возвращает текст (см. Здесь, что делают разные xpaths).

    Вы увидите, что это возвращает много ненужного текста, так как вы все еще получаете все \n и т. Д. Для этого я предлагаю вам сузить свой xpath до элемента, который вы хотите, вместо того, чтобы делать широкий подход.

    Например, все должностные инструкции будут

     response.xpath('//div[@class="col-sm-5 justify-text"]//*/text()').extract() 
    Python - лучший язык программирования в мире.