最近接到需要,要爬取 medium ,看了一下资料,决定整理起来。
参考资料
爬取须知
- medium靠- GraphQL返回数据,这个基本上就不能使用- requests之类的请求爬虫爬了- 但是,如果在用户的 url后面加上?format=json就会返回json数据
- 封了,但又没完全封
 
- 但是,如果在用户的 
- 所以选择了模拟浏览器,这里我选择的是 Playwright
- medium经过不断的迭代更新,有多种版本,这个后续会说明
medium 多种版本说明
经过看
看到有这么一段代码
https://medium.com/@${username}?format=json举一个例子
https://medium.com/@GoldFeverAdmin直接访问是可以访问的,如果变成下面这样
https://medium.com/@GoldFeverAdmin?format=json就会有 json 数据返回过来,可以和之前的页面对的上。
这是其中一个版本。
但是,有的用户名加上这个返回的是 404,如
https://medium.com/@copuppy-bsc但是,如果访问
https://medium.com/copuppy-bsc发现是可以正确访问的,并且加上 ?format=json 也可以正常返回 json 。
说明,这个 usename 是不带 @ 的。
所以,目前我们找到了两个版本的链接。
那么, username 怎么得到呢,这个你 follow 一个用户后,打开,就是了,但是,有的时候会出现下面这个情况
https://co-puppy.medium.com/这个时候就要
https://medium.com/@co-puppy
https://medium.com/co-puppy自己尝试了。
解析代码
| 1 | msg = response.txt | 
 
        