我正在使用 Python 和 Beautiful Soup 开发一个网络爬虫项目。请查看我遇到问题的 HTML 代码部分。由于所有 <li>
<ul>
中的项目<div>
具有相同的类名和 <span>
,如何提取电话号码,即第二个值 <span>
在第三个 <li>
元素?
我可以提取 <ul>
使用 ad_soup.find("ul",{"class":"Menu"})
标记及其内容,但我不知道之后如何进行。任何帮助将不胜感激。
<ul class="Menu">
<li>
<div class="item">
<span class="name">Name:</span>
<span class="value">....</span>
</div>
</li>
<li>
<div class="item">
<span class="name">Location:</span>
<span class="value">....</span>
</div>
</li>
<li>
<div class="item">
<span class="name">Phone:</span>
<span class="value">....</span>
</div>
</li>
</ul>
最佳答案
如果您知道电话始终是第三元素,以下内容应该有所帮助:
(ad_soup.find("ul",{"class":"Menu"}).
find_all("li")[2].find("span", {"class": "value"}))
如果您不知道电话始终是第三个元素,您可以遍历所有 li
并选择需要的一个:
[li.find("span", {"class": "value"})
for li in ad_soup.find("ul",{"class": "Menu"}).find_all("li")
if li.find("span", {"class": "name"}).string == "Phone:"]
关于python - 使用 Beautiful Soup 提取特定列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322045/