吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4715|回复: 5
上一主题 下一主题
收起左侧

[Python 转载] [Scrape Center - spa1]简单动态网页的数据爬取

[复制链接]
跳转到指定楼层
楼主
三滑稽甲苯 发表于 2022-2-17 10:12 回帖奖励
本帖最后由 三滑稽甲苯 于 2022-2-17 10:12 编辑

网址

主站:https://scrape.center/
题目:https://spa1.scrape.center/

分析

老规矩,打开开发者工具的网络后刷新页面,可以看到多出来很多请求


有经验的人应该猜到了,我们要的数据应该在这两个请求内

如果看不出来,可以搜索任一电影名,也可以很快定位到正确的请求

直接在新标签页打开可以正常获取数据,说明反爬措施不是很严格,可以直接上代码

根据参数名猜测 limit 指的是最多返回几条数据, offset 指的是从哪一条开始,通过修改 url 很容易验证这一猜想

Python 代码

from requests import Session
from time import time

def show(movies: list):
    for movie in movies:
        print(f"{movie['name']} - {movie['alias']}")
        print("  Score:", movie["score"])
        print("  Tags:", *movie["categories"])
        print("  Regions:", *movie["regions"])
        print(f'  Duration: {movie["minute"]} min')
        print("  Release date:", movie["published_at"])
        print("  Link:", f"https://spa1.scrape.center/detail/{movie['id']}")
        print()

if __name__ == '__main__':
    start = time()
    x = Session()
    LIMIT = 10  # 每次最多获取10条数据
    URL = "https://spa1.scrape.center/api/movie/?limit={}&offset={}"
    r = x.get(URL.format(1, 0))
    TOTAL = r.json()["count"]
    now = 0
    while now < TOTAL:
        r = x.get(URL.format(LIMIT, now))
        show(r.json()["results"])
        now += LIMIT
    end = time()
    input(f'Time used: {end - start} s.')

效果图

结语

我们没必要害怕动态加载的网页。如果没有反爬,它甚至会比静态网页更容易爬取,因为接口返回的数据就是我们想要的,可以省去解析 html 的步骤。

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
简忘 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
砺心缘起 + 1 + 1 热心回复!
52菜鸟 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
v20471188 发表于 2022-2-17 11:25
学习留念,感谢分享。
3#
风在前,无惧 发表于 2022-2-17 13:16
适合小白,但是真实的情况往往更复杂,想要提升还得从源网页入手
4#
笑逐颜凯 发表于 2022-2-17 13:27
5#
我今天是大佬 发表于 2022-2-17 13:38
非常棒, 期待继续分享
6#
kiopc 发表于 2022-2-17 15:35
这是崔某人练习的平台,建议去找一些网站去试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 02:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表