Hello,这里是双面酱喵~今天我们来讲从零开始的逆向生活第三弹,这次我们来讲数据链路分析。
当我们了解了传输协议和鉴权之后,需要分析数据源的链路,然后使用编程语言(文章使用 Python)来还原链路。
这里我们使用豆瓣 Top250 的数据进行分析。
案例 link:https://movie.douban.com/top250
一、抓包分析
我们使用浏览器自带的抓包工具打开(F12),然后刷新一下网页,来截取数据包。
发现数据源来自于 https://movie.douban.com/top250,查看 header 和 uri 中没有包含参数,可能是为空的默认值,尝试翻页,找到参数。
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
请求头部并没有发现任何变化,那么数据链路就是这样的。
二、链路总结
请求 url 为:https://movie.douban.com
参数存在于 uri 中,键对值参数:
start = (n-1)*25filter为空即可
然后返回带有数据的 w3c,渲染到我们的浏览器。
三、Python 还原链路
环境依赖:
pip install requests parsel抓取全部影视名称并打印:
import requests
from parsel import Selector
BASE_URL = "https://movie.douban.com/top250"
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
for page in range(1, 11):
start = (page - 1) * 25
resp = requests.get(f"{BASE_URL}?start={start}&filter=", headers=HEADERS)
sel = Selector(resp.text)
for name in sel.xpath('//div[@class="item"]//span[@class="title"]/text()').getall():
if not name.startswith("/"):
print(name)
原创
从零开始的逆向生活(三)
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法