python - 使用 beautiful soup - 提取 <div> 标签中的字符串?

标签 python linux wordpress xpath beautifulsoup

对于这件事,我对 bs4 相当陌生,但我试图从网站上抓取一小块信息:但它一直打印“无”,就好像标题或任何标记(如果我替换它)不存在一样。

该项目由两部分组成:

  • 循环部分:(这似乎非常简单)。
  • 解析器部分:我遇到一些问题 - 见下文。

我正在尝试循环遍历 URL 数组并从 WordPress 插件列表中抓取下面的数据。请参阅下面的循环 -

from bs4 import BeautifulSoup
import requests
#array of URLs to loop through, will be larger once I get the loop working correctly
plugins = ['https://wordpress.org/plugins/wp-job-manager', 'https://wordpress.org/plugins/ninja-forms']

该项目:wordpress 插件的状态数据列表:- 大约 50 个插件值得关注!

https://wordpress.org/plugins/wp-job-manager
https://wordpress.org/plugins/ninja-forms
https://wordpress.org/plugins/participants-database ....and so on and so forth.

解析器部分: 这就是我使用 beautiful soup 的方法 - 在标签中提取字符串?

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = "https://wordpress.org/plugins/participants-database/"
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")

ttt = page_soup.find("div", {"class":#post-15991 > div.entry-meta > div.widget.plugin-meta"})
item = ttt.a.text
print(item)

后台:想要从此页面获取以下数据:

https://wordpress.org/plugins/participants-database/

我需要以下三行的数据 - 在上面提到的示例中

Version: <strong>1.29.3</strong>
Active installations: <strong>100,000+</strong>
Tested up to: <strong>4.9.4</strong>

查看我在这里找到的 xpath:

//*[@id="post-15991"]/div[4]/div[1]

//*[@id="post-15991"]/div[4]/div[1]/ul/li[1]
//*[@id="post-15991"]/div[4]/div[1]/ul/li[2]
//*[@id="post-15991"]/div[4]/div[1]/ul/li[3]
//*[@id="post-15991"]/div[4]/div[1]/ul/li[4]
//*[@id="post-15991"]/div[4]/div[1]/ul/li[5]
//*[@id="post-15991"]/div[4]/div[1]/ul/li[6]

最佳答案

您可以简单地获取所需的值:

ttt = page_soup.find("div", {"class":"plugin-meta"})
text_nodes = [node.text.strip() for node in ttt.ul.findChildren('li')[:-1:2]]

text_nodes 的输出:

['Version: 1.7.7.7', 'Active installations: 10,000+', 'Tested up to: 4.9.4']

关于python - 使用 beautiful soup - 提取 <div> 标签中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48892305/

相关文章:

jquery - footable:removeClass 不适用于扩展行

python - pyenv 或 virtualenv 对 Django 来说是必不可少的吗?

reactjs - 如何使用 HTTPS 启动 React 项目

css - Cherry Framework 4 - 更改页脚 Bootstrap 设置

sql - MySQL Workbench 无法在 ubuntu 上打开

c++ - exec 如何改变执行程序的行为

wordpress - 检查 WooCommerce 中是否应用了任何优惠券代码

python - 在python中使用谷歌的protobuf而不安装它

python - Heroku:安装 Pytorch 后 slug 尺寸太大

python - 使用python在文本文件中查找单词出现的第n个实例