首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在html元素中刮取“数据”或自定义参数的值。

在html元素中刮取“数据”或自定义参数的值。
EN

Stack Overflow用户
提问于 2017-05-07 03:00:06
回答 2查看 925关注 0票数 0

我正试着为一个类项目建立一个网络刮刀。我用的是美汤。

我想刮掉以下值的值:

代码语言:javascript
复制
data-bathroom-value

代码语言:javascript
复制
data-bedroom-value

以下元素中的参数:

代码语言:javascript
复制
<td class="floorplan-bed-bath" data-bathroom-value="1" data-bedroom-value="0">Studio / 1 bath</td>

基本上是想得到卧室数和卧室数的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-07 03:17:38

您可以使用BeautifulSoup解析您的html,然后获取标记的属性

演示

代码语言:javascript
复制
>>> html_doc = '<td class="floorplan-bed-bath" data-bathroom-value="1" data-b edroom-value="0">Studio / 1 bath</td>'
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html_doc, 'html.parser')
>>> attrs = soup.td.attrs
{u'data-bathroom-value': u'1', u'data-bedroom-value': u'0', u'class': [u'floorplan-bed-bath']}
>>> attrs.get('data-bedroom-value')
u'0'
票数 2
EN

Stack Overflow用户

发布于 2017-05-07 03:18:03

代码语言:javascript
复制
from bs4 import BeautifulSoup
import urllib2

page = urllib2.urlopen("http://example.com/path/to/page")
soup = BeautifulSoup(page.read())

for td in soup.find_all("td"):
    if "data-bathroom-value" in td.attrs:
        print("Bathrooms: ", td["data-bathroom-value"])
    if "data-bathroom-value" in td.attrs:
        print("Bedrooms: ", td["data-bedroom-value"])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43827392

复制
相关文章

相似问题

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