首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法识别存储在网页上的数据的html部分

无法识别存储在网页上的数据的html部分
EN

Stack Overflow用户
提问于 2013-01-31 19:11:47
回答 1查看 35关注 0票数 0
代码语言:javascript
复制
# -*- coding: cp1252 -*-
import csv
import urllib2
import sys
import urllib
import time
from bs4 import BeautifulSoup
from itertools import islice


url = 'http://www.verizonwireless.com/wcms/consumer/shop/share-everything.html'
user_agent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;Trident/5.0)'
req = urllib2.Request(url,headers={ 'User-Agent' : user_agent })
response = urllib2.urlopen(req)
page = response.read()
soup = BeautifulSoup(page)

tabcontent = soup.find('div', {"id": "uttsdPlanOptions", "class": "priceCol2"})
content = tabcontent.findAll('tr')
print content

在打印内容后,我意识到我没有得到网站上提到的以GB为单位的数据值,当我尝试检查" GB“部分的元素时,我发现这个html结构<p class="ptData">Shareable Data</p>在这部分中没有提到GB,也没有链接的图像可以解释GB的缺失值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-31 19:32:23

您正在查找的值不是以文本形式存在的。它是从URL /content/dam/vzw/lobs/consumer/shop/share-everything/data-sprite.png获取的图像,并使用CSS代码裁剪成一定大小:

代码语言:javascript
复制
.ptData{min-width:74px;background:transparent url(/content/dam/vzw/lobs/consumer/shop/share-everything/data-sprite.png) no-repeat;padding-top:52px;display:block;}
.data300mb .ptData{background-position:center top;}
.data1 .ptData{background-position:center -72px;}
.data2 .ptData{background-position:center -144px;}
.data4 .ptData{background-position:center -216px;}
.data6 .ptData{background-position:center -288px;}
.data8 .ptData{background-position:center -360px;}
.data10 .ptData{background-position:center -432px;}
.data12 .ptData{background-position:center -504px;}
.data14 .ptData{background-position:center -576px;}
.data16 .ptData{background-position:center -648px;}
.data18 .ptData{background-position:center -720px;}
.data20 .ptData{background-position:center -792px;}
.data30 .ptData{background-position:center -864px;}
.data40 .ptData{background-position:center -936px;}
.data50 .ptData{background-position:center -1008px;}

您尝试从中获取值的表具有如下记录:

代码语言:javascript
复制
<td class="data2">
    <p>Unlimited Talk &amp; Text with</p>
    <p class="ptData">Shareable Data</p>
</td>

<p>标记的class属性根据前面<td> (继承的)的class属性获取图像。所以可以从<td>标记中的class属性值派生出您想要的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14624327

复制
相关文章

相似问题

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