Category - Tech

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

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

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

    1. 一夫当关 - XHR Breakpoints

    网站是七麦数据。我们要抓取的内容是页面上的 App Store 排行榜数据。

    通过分析网络请求我们可以发现,榜单数据是通过 Ajax 请求来获取的。返回的数据格式是明文 Json。

    image

    请求参数如下:

    analysis: dDB4Fi8wUEF...(太长,略)
    brand: all
    country: cn
    device: iphone …
  2. 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 …