Python 美丽的汤正在吸引不存在的标签

Python 美丽的汤正在吸引不存在的标签,python,beautifulsoup,Python,Beautifulsoup,当我在一个有工作列表的页面上运行一个BS时,除了一行之外,一切都正常。出于某种原因,它正在打印标签。标记为/n和\n 然而,当我使用word查看每个单独的框时,它工作得很好。请参阅下面的代码和输出 print(jobs[2].find('h2').get_text()) print(jobs[2].find(class_='company-title-name').get_text()) 系统分析员 莱克斯咨询公司 然后,当我遍历所有结果时,company_name列表具有不在inspect元

当我在一个有工作列表的页面上运行一个BS时,除了一行之外,一切都正常。出于某种原因,它正在打印标签。标记为/n和\n

然而,当我使用word查看每个单独的框时,它工作得很好。请参阅下面的代码和输出

print(jobs[2].find('h2').get_text())
print(jobs[2].find(class_='company-title-name').get_text())
系统分析员

莱克斯咨询公司

然后,当我遍历所有结果时,company_name列表具有不在inspect元素中的随机标记。我留下了第二个项目,以表明它没有发生在这一个

job_title = [job.find('h2').get_text() for job in jobs]
company_name = [job.find(class_='company-title-name').get_text() for job in jobs]

print(job_title)
print(company_name)
“系统分析师”、“销售运营分析师”] ['\n审查\n','\nCpl技术\n','\nLex咨询\n','\nGilligan黑人招聘\n']

下面是从page inspect元素存储它们的代码

<div class="serp-title">
   <a jobid="1863378" href="https://www.jobs.ie/ApplyForJob.aspx?Id=1863378" title="Systems Analyst">
       <h2>Systems Analyst</h2>
   </a>
   <span>
     <text class="company-title-name">
     <a href="/Lex-Consultancy/">Lex Consultancy</a>
     </text>
   </span>
</div>

有人知道为什么会这样吗


谢谢

这些
\n
字符是换行符,您得到它们的原因是它们在源文档中

您将获得带有
class='company-title-name'
的标签,这是一个:

 <text class="company-title-name">
 <a href="/Lex-Consultancy/">Lex Consultancy</a>
 </text>

然后你得到的只是文本,让我们去掉内部标记:

 <text class="company-title-name">
 Lex Consultancy
 </text>

莱克斯咨询公司
你看到换行了吗?一个在第一行的“>”后面,另一个在“咨询”后面

以防万一还不完全清楚,如果没有换行符,HTML就是这样的:

 <text class="company-title-name">Lex Consultancy</text>
Lex咨询公司

试着使用
strip()
rstrip()

你说的是出现的
\n
字符吗?至少在真正的html中,你可以区分elementNode和textNode。两人都是孩子,但如果不是你想要的,99%的人都是孩子。关于BS不太确定,但我可以想象,当你调用
get_text
函数时,这种情况会在引擎盖下发生。如果elementNode中没有任何文本,您可能也会得到它。
 <text class="company-title-name">Lex Consultancy</text>