Python 美丽的汤正在吸引不存在的标签
当我在一个有工作列表的页面上运行一个BS时,除了一行之外,一切都正常。出于某种原因,它正在打印标签。标记为/n和\n 然而,当我使用word查看每个单独的框时,它工作得很好。请参阅下面的代码和输出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元
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>