Как извлечь текстовые данные из нескольких тегов, используя response.XPath в Scrapy? - PullRequest
0 голосов
/ 27 июня 2018

Я застрял с одной проблемой. Я хочу извлечь текст из следующего HTML, используя XPath в scrapy.

<div class="block fix-text job-description">
   <p>We’re looking for an experienced <strong>Events Manager</strong> to develop and deliver our events and exhibitions programme, available to start as soon as possible. You’ll be leading a team of two to create and implement an events strategy that supports our corporate objectives. You’ll be working closely with our campaigns, marketing and projects teams to make sure we connect with our audiences and achieve event objectives.</p>
   <p>In this role, you’ll be working within a dynamic team in a fast-paced environment, with the potential opportunity to be part of the recruitment process to build your own team. Your experience as an events manager will have a strong marketing or digital marketing focus, ideally within a regulatory or third sector context.</p>
   <p>You’ll be managing high profile events across our diverse organisation, from workshops and online webinars to our national flagship conference. It’s an exciting role with the opportunity to help shape our current digital transformation and strengthen our brand, so we’re looking for creativity and innovation. You’ll also be working with senior colleagues and stakeholders, for whom you’ll prepare detailed briefings. In addition, you:</p>
   <ul>
      <li>Can demonstrate your extensive experience of creating and managing high profile events and conferences</li>
      <li>Have experience in delivering complex events programmes integrated into campaigns and marketing communications</li>
      <li>Have experience of audience research and insight</li>
      <li>Have excellent budget management and negotiation skills</li>
      <li>Are an outstanding communicator, both verbal and written</li>
      <li>Have strong people management skills with the ability to motivate and develop a team remotely</li>
   </ul>
   <p>This role is the opportunity to work within one of the largest healthcare regulators within the UK, shaping change within healthcare. As part of your salary and benefits package, you’ll receive:</p>
   <ul>
      <li>A good pension (15% employer contribution)</li>
      <li>25 days’ holiday a year (option to buy &amp; sell)</li>
      <li>Private Medical Insurance (PMI) &amp; Health screens</li>
      <li>Interest free ticket loans</li>
      <li>Exclusive discounts</li>
      <li>Employee assistance programme</li>
      <li>Childcare vouchers</li>
      <li>Cycle to work scheme</li>
      <li>Flexi-working</li>
      <li>The option to work from home up to 2 days a week.</li>
   </ul>
   <p>The General Medical Council (GMC) helps to protect patients and improve medical education and practice in the UK by setting standards for medical students and doctors. We support them in achieving (and exceeding) those standards and take action when they’re not met.</p>
   <p>A registered charity, we value diversity and inclusion because our differences make us stronger. So, our processes are fair, objective, transparent and free from discrimination.</p>
   <p><strong>Employment status: 12-month Fixed Term Contract</strong></p>
   <p><strong>Closing date: Midnight on Sunday 1st July 2018, late applications will not be accepted.</strong></p>
   <p><strong>Assessment date: Interviews &amp; Assessments will take place on Wednesday 11th July 2018</strong></p>
</div>

Как извлечь текст сверху HTML. Я пытался следовать XPath для извлечения текста

  1. // * [@ класс = „работа-описание“]

  2. // [@ ид = «основные»] / дела / дела / дела [1] / дела [1] / дела / дела [2] / дела [2] // текст ()

  3. // [@ ID = «основной»] // ДИВ [@ класс = «работа-описание»] /»
  4. // DIV [@ класс = «работа-описание»] / р / текст ()
  5. '// ДИВ [@ класс = "работа-описание"] / следующий-родственный :: узел () / потомок или-я :: текст ()

6. // DIV [@ класс = "работа-описание"] / р / потомок или-я :: текст ()

Но не получил вывод, может кто-нибудь сказать, пожалуйста, как очистить эту информацию, потому что она содержит несколько тегов {p}, (ul} внутри класса.

так что теперь я не понимаю, как получить информацию.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Я решил эту проблему из следующего ответа:

Я просто поставил следующий xpath: //*[contains(@class,"job-description")]/descendant::text()

Спасибо за ваш комментарий @Lars Marius Garshol.

0 голосов
/ 27 июня 2018

Не совсем понятно, чего вы хотите, но звучит так, будто вы хотите запрос XPath, который дает вам все текстовые узлы. Что вы можете сделать так:

/descendant::text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...