# -*- 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的缺失值。
发布于 2013-01-31 19:32:23
您正在查找的值不是以文本形式存在的。它是从URL /content/dam/vzw/lobs/consumer/shop/share-everything/data-sprite.png获取的图像,并使用CSS代码裁剪成一定大小:
.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;}您尝试从中获取值的表具有如下记录:
<td class="data2">
<p>Unlimited Talk & Text with</p>
<p class="ptData">Shareable Data</p>
</td><p>标记的class属性根据前面<td> (继承的)的class属性获取图像。所以可以从<td>标记中的class属性值派生出您想要的值。
https://stackoverflow.com/questions/14624327
复制相似问题