网站:https://www.yaofangwang.com/medicine/646305/
药房网商品详情页的价格直接从网页上复制是“乱码”,使用影刀通过捕获元素或者是网页监听等形式取数也是乱码。那么如何获取正确的价格呢?
from fontTools.ttLib import TTFont
font = TTFont(r"xxxxxx\font.ttf")
xml_font = font.saveXML(r"xxxxx\font.ttf.xml")数字:0-->ID:
数字:1-->ID:2
数字:2-->ID:3

#根据找到的对应关系,构建解密字典
from fontTools.ttLib import TTFont
def decode_dict(font_path):
font = TTFont(font_path)
# 获取字形名称列表
glyph_order = font.getGlyphOrder()
#print(glyph_names)
new_dict={}
# 遍历字形名称列表,打印ID和名称
for i, name in enumerate(glyph_order):
if i>=1 and i<=10:
#print(f"Glyph ID: {i}, Name: {name}")
new_dict[name]=str(i-1)
#数字5特殊处理
if name=="uni0ECC":
new_dict["uni1ECC"]=str(i-1)
#print(new_dict)
return new_dict解密字典: {'uniD6C2': '0', 'uni31ED': '1', 'uni9F43': '2', 'uni398D': '3', 'uni9220': '4', 'uni0ED3': '5', 'uni5B02': '6', 'uni69E5': '7', 'uniB899': '8', 'uniD0AC': '9'}

㦍.킬훂
0x31ed 0x398d 0x2e 0xd0ac 0xd6c2
uni31ed uni398d uni2e unixd0ac unid6c2
13.90
def decode_text(web_element_attribute,decode_dict):
list_text=[]
for i in range(0,len(web_element_attribute)):
print(web_element_attribute[i])
code=str(hex(ord(web_element_attribute[i])))
print(code)
code=code.upper().replace("0X","")
code="uni"+'0' * (4-len(code))+code
key_list=decode_dict.keys()
if code in key_list:
list_text.append(decode_dict[code])
else:
list_text.append(web_element_attribute[i])
return "".join(list_text) 注意事项: 该网站比较特殊,每次加载数据,网站都会更新字体文件,所以排序,翻页这些动作之后需要重新获取解密字典
演示视频:
