python - 使用 Beautiful Soup 提取特定列表项

标签 python html web-scraping beautifulsoup

我正在使用 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/

相关文章:

python - 如何将 SOAP header 传递到 WSDL 文件中未定义的 python SUDS

php - 无法连接数据库和处理 POST 请求

python - 为什么 lxml 在 Python 中有时(但不常见)会抛出错误?

javascript - Selenium 找到的元素缺少一些属性

python - selenium 不能在 url 中使用 &

python - 用数字和字母排序列表

python - pandas 系列中的独特值计数

python - 有没有办法在 python 中运行 bash eval 命令?

javascript - JS - 为所有 CSS 转换添加特定于浏览器的前缀

javascript - 使用 jQuery UI 制作具有可调整大小的列和可选择的行的表