本帖最后由 fa2003 于 2018-9-1 21:24 编辑
老师您好,我们尝试抓取并识别猫眼的自定义字体(http://maoyan.com/cinema/2661?poi=2363913)来获得电影票价格。目前根据网上的开源资料已经能识别出每个字体编码对应的数字,并拼接成了HTML中看到的编码样式。
numList=['6', '2', '7', '4', '5', '1', '8', '0', '9', '3'] utf8List=['& #xf22f', '& #xebc4', '& #xebaf', '& #xeeb1', '& #xeca2', '& #xe8d6', '& #xe6ee', '& #xec30', '& #xf446', '& #xf35a']
但是,在python3.7下我们无法获取页面中带有&#x的编码——<span class="sell-price"><span class="stonefont">& #xf22f;& #xeca2;.& #xf446;</span></span>
上述内容中的& #xf22f;& #xeca2;.& #xf446; 在python3中只能显示为:'\uebc4\uebc4.\uebaf'
也就是\u开头的十六进制数,而不是保存成HTML文件后看到的&#x开头的编码。现在我想获得& #xf22f;这种形式的字符串,然后用replace的方式去变成最后对应的价格。应该如何转码那?望老师指教。
获取数据我们采用的是requests对象,解析用的是BeautifulSoup。
解析的方式为:
sell_price = td[3].find('span',class_='stonefont').get_text()
下面是尝试替换的代码,但始终无法成功:
for i in range(len(utf8List)):
sell_price = sell_price.replace(utf8List,numList)
参考的项目:
http://www.mamicode.com/info-detail-2387785.html
|