1. phpMyAdmin Docker 简单配置

    phpMyAdmin(以下简称 PMA )的数据字典(Data Dictionary)对我来说是一个比较有用的功能(实际上我只用这个功能...),可以以网页形式浏览所有表、视图、字段、索引、注释等,在一个有数百张表的数据库中可以快速检索所需信息。

    image

    利用 Docker 可以方便快速地在本地部署 PMA。

    下载

    docker pull phpmyadmin/phpmyadmin

    运行

    docker run --name PMA -d -p 8080:80 --restart=always -e PMA_ARBITRARY=1 -v /path/to/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc …

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

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

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

    1. 一夫当关 - XHR Breakpoints

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

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

    image

    请求参数如下:

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