首页 > 其他分享 >汽车之家字体反爬

汽车之家字体反爬

时间:2023-10-26 22:34:19浏览次数:29  
标签:__ url 反爬 self fonts 汽车 字体 file font

#!/usr/bin/env python  
# encoding: utf-8  
from requests_html import HTMLSession
import re
import os
from fontTools.ttLib import TTFont

class QiCheZhiJia():
    def __init__(self):
        self.url="https://club.autohome.com.cn/bbs/thread/bb8c36ced93ce182/74203500-1.html"
        self.hanzi=['不','了','呢','更','是','四','小','七','三','多','得','一','着','下','十','少','长','二','六','远','左','地','短','九','五','上','坏','很','右','低','高','矮','八','近','大','好','的','和']
        self.session=HTMLSession()
        self.f_dict={}
        self.uniWordList=[]
        self.utf8WordList=[]
    def create_font(self,font_url):
        # 列出已下载文件
        font_file=font_url.split('/')[-1]

        if not os.path.exists("./fonts"):
            os.makedirs("./fonts")
        file_list = os.listdir('./fonts')

        if font_file not in file_list:
            # 未下载则下载新库
            print('不在字体库中, 下载:', font_file)
            new_file = self.session.get(font_url).content
            with open('./fonts/' + font_file, 'wb') as f:
                f.write(new_file)
            font = TTFont('./fonts/' + font_file)
        else:
            font = TTFont('./fonts/' + font_file)
            gly_list = font.getGlyphOrder()[1:]
        gly_list = font.getGlyphOrder()[1:]
        for number,gly in enumerate(gly_list):
            self.f_dict.setdefault(gly.lower().replace('uni','&#x'),self.hanzi[number])
        self.uniWordList = font['cmap'].tables[0].ttFont.getGlyphOrder()
        self.utf8WordList = [uniWord.replace("uni",r"\u").encode('utf-8').decode("unicode-escape") for uniWord in self.uniWordList[1:]]
        print(self.utf8WordList)
    def run(self):
        req=self.session.get(self.url)
        source=req.text
        font_url=self.parse(source)
        self.create_font(font_url)
        info=req.html.xpath("//div[@class='tz-paragraph' and string-length(text())>1]//text()")
        print(info)
        elem=""
        for item in info:
            elem += item
        for i in range(len(self.utf8WordList)):
            # 将自定的字体信息,替换成国际标准
            elem = elem.replace(self.utf8WordList[i], self.hanzi[i])
        print(elem)

    def parse(self,source):
        plat=re.compile("'\),url\('(.*?)'\)")
        font_url="http:"+plat.findall(source)[0]
        return font_url
if __name__ == '__main__':
    QiCheZhiJia().run()

 

标签:__,url,反爬,self,fonts,汽车,字体,file,font
From: https://www.cnblogs.com/knighterrant/p/10890783.html

相关文章

  • 人工智能 | AI驾驶系统:改变汽车产业的革命
    随着人工智能(AI)技术的飞速发展,汽车产业正迎来一场革命。AI驾驶系统的出现和逐渐成熟,不仅将改变我们的驾驶方式,还将深刻影响整个汽车产业,从汽车制造商到城市规划者,再到每一位驾驶者。AI驾驶系统的基础AI驾驶系统建立在深度学习、计算机视觉和传感器技术的基础之上。这些系统通过车载......
  • 人工智能 | 无人驾驶汽车:道路安全和效率的未来
    随着科技的飞速发展,无人驾驶汽车正在逐渐改变我们的道路交通方式。这项革命性的技术不仅仅让我们能够实现更安全的驾驶,还将为交通系统带来更高效、更智能的未来。无人驾驶汽车如何成为道路安全和效率的未来代表。无人驾驶汽车的基础无人驾驶汽车的核心是人工智能(AI)和传感器技术。这......
  • 应用案例|基于三维机器视觉的机器人引导电动汽车充电头自动插拔应用方案
    Part.1 项目背景人类对减少温室气体排放、提高能源效率以及减少对化石燃料的依赖,加速了电动汽车的普及,然而,电动汽车的充电依然面临一些挑战。传统的电动汽车充电通常需要人工干预,插入和拔出充电头,这不仅可能导致操作错误,还会引起不必要的延误。为了解决以上痛点,自动化充电技术应运......
  • 汽车电子sent协议的使用
    根据SAE J2716APR2016page9of120的规范,Fastchannel和Slowchannel是属于应用层面的协议。并不属于传输层面的协议。   FastChannel不涉及IDSlowChannel涉及到ID ......
  • 在fmx下动态生成的TText为什么不能调整大小及字体样式
    //为什么会这样呢?类似于下面这样的代码不能生效。MyLbl:=Ttext.Create(self);MyLbl.Parent:=VscrbMenuBtn;//MyLbl.Font.Size:=20;MyLbl.TextSettings.Font.Size:=20;MyLbl.Size.PlatformDefault:=false;......
  • 新能源汽车动力电池热失控环境下数据解析研究
    摘要:当前,全球面临着严重的资源短缺以及环境污染问题,为应对环境和气候变化,新能源汽车成为汽车行业主要发展趋势。但是新能源汽车自燃事故时有发生,严重影响了新能源汽车行业发展。锂离子电池是系能源汽车的主要电力来源,电池安全性对于新能源汽车发展具有直接影响。其中新能源电池......
  • 直播系统源代码,修改ToolBar的标题的字体颜色大小
    直播系统源代码,修改ToolBar的标题的字体颜色大小1)、修改ToolBar的标题的字体颜色大小   在style文件上添加 <!--设置Toolbar标题字体的颜色大小--><stylename="Toolbar.TitleText"parent="TextAppearance.Widget.AppCompat.Toolbar.Title">  <itemname="androi......
  • 图像识别在自动驾驶汽车中的多传感器融合技术
    摘要: 介绍文章的主要观点和发现。引言:自动驾驶汽车的兴起和重要性。多传感器融合技术在自动驾驶中的关键作用。第一部分:图像识别技术图像识别的基本原理。图像传感器和摄像头在自动驾驶中的应用。深度学习和卷积神经网络(CNN)在图像识别中的作用。第二部分:多传感器融合......
  • CSS(二) 字体系列属性
    1.CSS常用属性属性名称属性作用值width宽度px/百分数/em等height高度px/百分数/em等background-color背景色red/#fff/rgb(255,255,255).box{width:100px;/*宽度*/height:100px;/*高度*/bac......
  • 阴影,圆角边框,字体引入
    文本阴影盒子阴影圆角边框半圆扇形 字体引入 ......