首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用漂亮的汤-在<div>标签中提取字符串?

使用漂亮的汤-在<div>标签中提取字符串?
EN

Stack Overflow用户
提问于 2018-02-20 18:52:40
回答 1查看 623关注 0票数 0

我对bs4for来说还挺新的,但是我试着从一个站点上抓取一小块信息:但是它一直在打印“无”,好像标题或任何标签(如果我替换它)都不存在一样。

该项目由两部分组成:

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

我试图循环遍历一个URL数组,并从wordpress-plugins列表中抓取下面的数据。看我下面的循环-

代码语言:javascript
复制
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个插件是感兴趣的!

代码语言:javascript
复制
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.

解析器-部分:,所以这是我使用漂亮汤的方法-来提取标签中的字符串?

代码语言:javascript
复制
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/

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

代码语言:javascript
复制
Version: <strong>1.29.3</strong>
Active installations: <strong>100,000+</strong>
Tested up to: <strong>4.9.4</strong>

请参阅我在这里找到的xpath:

代码语言:javascript
复制
//*[@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]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-20 19:08:27

您可以获得所需的值,只需:

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

text_nodes输出

代码语言:javascript
复制
['Version: 1.7.7.7', 'Active installations: 10,000+', 'Tested up to: 4.9.4']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48892305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档