Tag - python

  1. 基于字体字符码点的文字异常检测

    📁 Tech

    📌 python

    0

    本文以《新世纪日汉双解大辞典》为例,介绍一种辞典文本错字的检测方法。

    1

    近日找寻日文辞典,下载《新世纪日汉双解大辞典》后,自行改写CSS样式,变更日文字体为教科书体(UD デジタル 教科書体 N-R,Windows 10 自带字体),然而后续检查中发现个别文字字体样式有异,如图中「边」字。

    font fallback

    原因何在?首先需要了解字体显示的回退机制(fallback):在网页中,如果某个字符在CSS指定的字体中不存在,那么排版引擎将根据内置的预设字体作为后备显示方案。

    此处,CSS样式指定的日文字体仅包含日文汉字,无法显示作为中文简体的「边」字,由于回退机制,排版引擎便以衬线字体展示,而 …

  2. 数据抓取实践:对加密参数及压缩混淆JS的逆向分析

    之前在 V 站上看到一个帖子,内容是楼主想抓取数据的网站做了参数加密,不知如何解密。刚好最近有点空闲时间,可以尝试解密一下网页参数,而且很久没练手了。

    文中会介绍几种分析技巧,需要一点前端知识(总感觉在前端做防爬没什么意义,因为源码都是公开的)。文末附上爬虫 Demo 验证,虽然对于这个案例来说使用 Selenium 可能才是合适的解决方法,但暴力破解才是男人的浪漫! ...嗯本文的重点只是在于分析解密的过程。有些图片因代码过长未包含在内,意会即可。

    1. 一夫当关 - XHR Breakpoints

    网站是七 …

  3. Scrapy 暗坑之 start_requests

    众所周知,Scrapy 默认会过滤重复的 URL,不会重复抓取相同的 URL,除非显式指定。

    于是随便写了一个爬图片地址的小虫,然而不知道为什么总会爬两次 baidu 首页,你能看出错在哪里吗?

    class ImageSpider(scrapy.Spider):
        name = "images"
        allowed_domains = ["www.baidu.com"]
        start_urls = ['https://www.baidu.com/']
    
        def parse(self, response):
            images = response.xpath('//img/@src').extract()
            for image in images:
                image_item = ImageItem()
                image_item['img_url'] = response.urljoin(image.strip())
                yield image_item
    
            urls = response.xpath('//a/@href').extract()
            for url in urls:
                next_url = response.urljoin(url.strip())
                yield Request(next_url)
    

    我想了半天都不明白为什么,以为是过滤器的问题,查了半天资料仍没解决。 后来偶然看了 Spider 源码,才发现坑爹之处。

    原来源码的 start_requests 是这样写的(已忽略无关代码)

    def start_requests(self):
        for url in self …