Scrapy получает текст, состоящий из нескольких строк и внутри вложенных элементов - PullRequest
0 голосов
/ 15 декабря 2018

Я действительно пытаюсь собрать всю информацию о вакансиях в Бангалоре.

URL: https://www.indeed.co.in/jobs?q=software+developer&l=Bengaluru,+Karnataka&start=0

Xpath для родительского div, в котором я заинтересован:

// div [содержит (@class, "jobsearch-SerpJobCard")]

Я хочу извлечь название компании, которое структурировано следующим образом:

<span class="company">
        <a>
              Micro Focus
        </a>
</span>

и некоторые подобные:

<div>
    <span class="company">
        SSG <b>Software</b> Systems</span>

    </div>

Я использую общее выражение Xpath для очистки обоих типов заголовков.У меня проблемы со вторым типом, так как он включает в себя несколько escape-символов, таких как \ n, которые отражаются в моих результатах и ​​при извлечении результата в пустую строку.

Xpath используется для извлечения заголовков:

// div [содержит (@class, "jobsearch-SerpJobCard")] // span [@ class = "company"] / text ()

Результат:

['\ n', '\ n', '\ n', '\ n Клиент аналитического человеческого капитала', '\ n Advantage Tech', '\ n', '\ n SQUARE', '\ nDART ',' \ n posmab technologies ',' \ n ',' \ n PENTAMOUNT TECHNOLOGIES ',' \ n ',' \ n
MobileComm, Inc. ',' \ n IGLOBAL IMPACT ITES PVT.LTD. ', '\ n
', '\ n']

что я могу сделать, чтобы избавиться от этих лишних символов \ n?

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете использовать функцию normalize-space XPath для достижения этой цели.

>>> fetch('https://www.indeed.co.in/jobs?q=software+developer&l=Bengaluru,+Karnataka&start=0')
2018-12-15 09:47:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.indeed.co.in/jobs?q=software+developer&l=Bengaluru,+Karnataka&start=0> (referer: None)
>>> response.xpath('//div[contains(@class, "jobsearch-SerpJobCard")]//span[@class="company"]').xpath('normalize-space()').getall()
['Amazon.com', 'Sabre', 'Altisource Labs', 'CGI', 'Allscripts Solutions', 'Shilpin Consulting', 'Access6 technology', 'CGI Group, Inc.', 'Misys Software Solutions India', 'Siemens AG']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...