likes
comments
collection
share

句子控爬虫

作者站长头像
站长
· 阅读数 10

躺在黄昏朦胧的光里,想想现在堕落的自己,回想起曾经那些平常而又普通的事…突然觉得之前自己期待的未来有点可笑…,这是摘子句子控中的一段话,今天就爬一下句子空。话不多说直接进入主题

  1. 先分析一下网页结构,网站地址

句子控爬虫 可见首页就是一个列表页,还是先抓翻页的包,看看翻页数据接口是什么样子的

句子控爬虫 滚动到最下面点击点击加载更多数据,可见数据接口,返回的数据也正确。看一下请求参数中有单个值 start应该是控制页数的每页加10(多翻几页可以分析出来)timestamp是一个时间戳,sign不知道是什么,全局索引一下看看有没有关键字

句子控爬虫 可见js中是有这个sign参数的,根据着一行js代码可以知道t请求参数的sign是Ro方法对t的params进行处理,那么就debug一下看看是不是在着一行生成了具体操作了点什么

句子控爬虫 断点可见在这一行停住了就是里了,

句子控爬虫 打印可见这个参数就是页数和时间戳通过Ro方法生成

句子控爬虫 点进Ro方法中可见源码。那就可以直接把这段js拿到python中使用execjs执行,要缺啥补啥,或者使用python模拟生成sign参数也是可以的。ok,但这里逻辑就清晰了 直接编辑好每页的参数然后发请求获取每条数据就ok了

headers = {
    'authority': 'api.juzikong.com',
    'accept': 'application/json, text/plain, */*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cache-control': 'no-cache',
    'origin': 'https://www.juzikong.com',
    'pragma': 'no-cache',
    'referer': 'https://www.juzikong.com/',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
}

params = {
    'start': f'{start}',
    'timestamp': f'{timestamp}',
    'sign': f'{sign}',
}

response = requests.get('https://api.juzikong.com/n0/home/posts/recommend', params=params, headers=headers).json()['data']['list']
for res in response:
    content = res['content']
    print(content)

句子控爬虫 ok,笑容洋溢在脸上

句子控爬虫