剪贴获取跨越多行和嵌套元素的文本

2024-05-16 23:15:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我确实在努力搜集班加罗尔所有职位的信息。在

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

我感兴趣的父div的Xpath:

//div[contains(@class, "jobsearch-SerpJobCard")]

我想提取公司名称,其结构如下:

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

有些人喜欢:

^{pr2}$

我使用一个通用的Xpath表达式来获取这两种标题。第二种类型遇到问题,因为它包含多个转义符,例如\n,这些转义符会反映在我的结果中,并且在剥离结果时会以空字符串形式出现。在

用于提取标题的Xpath:

//div[contains(@class, "jobsearch-SerpJobCard")]//span[@class="company"]/text()

结果:

['\n ', '\n ', '\n ', '\n Client of Analytics Human Capital', '\n Advantage Tech', '\n ', '\n SQUARE', '\n DART', '\n posmab technologies', '\n ', '\n PENTAMOUNT TECHNOLOGIES', '\n ', '\n
MobileComm, Inc.', '\n IGLOBAL IMPACT ITES PVT.LTD.', '\n
', '\n ']

如何删除这些多余的'\n'字符?在


Tags: httpsdiv信息标题www职位xpathcompany
1条回答
网友
1楼 · 发布于 2024-05-16 23:15:00

您可以使用^{}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']

相关问题 更多 >