小编Avy*_*Wam的帖子

如何使用 scrapy 或其他 python 库抓取视频媒体?

具体来说,我想从这个网站提取视频:equidia。第一个问题是当我启动scrapy shell https://www.equidia.fr/courses/2022-07-31/R1/C1 -s USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36". 我检查view(response)并注意到视频的容器存在。我可以点击播放,但没有流量,因此无法提取视频。我想蜘蛛在检查过程中的能力不会比我在网络浏览器中的能力更强。

更新:感谢 palpitus_on_fire 我检查了更多XHR类型请求,而我只专注于media类型。

我感兴趣的 XHR 请求是:https://equidia-vodce-p-api.hexaglobe.net/video/info/20220731_35186008_00000HR/01NdvIX6xNbihxxc3U52RDBX9novEE47lA1ZmEDw/0b94eb69d04aa18ca33ba5e8767b1a85264c35b6acefc8bfbd7eabb5e259cf2c/1659574478

它返回一个响应 json 文件:

{
"mp4": {
    "240": "https://private4-stream-ovp.vide.io/dl/0bee7ff9bce79419fb27bac012c5d090/62e904dc/equidia_2752987/videos/240p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-240p_full_mp4.mp4?v=0",
    "360": "https://private3-stream-ovp.vide.io/dl/7c53dc70ae5cc46d7e2c9d43e3dfc685/62e904dc/equidia_2752987/videos/360p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-360p_full_mp4.mp4?v=0",
    "480": "https://private3-stream-ovp.vide.io/dl/4261c5bd7b48595535710e1dc34e8f93/62e904dc/equidia_2752987/videos/480p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-480p_full_mp4.mp4?v=0",
    "540": "https://private3-stream-ovp.vide.io/dl/d40592e39e27931f20245edde9f30152/62e904dc/equidia_2752987/videos/540p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-540p_full_mp4.mp4?v=0",
    "720": "https://private8-stream-ovp.vide.io/dl/9cb5a24a43a8d22d27e73b164020894d/62e904dc/equidia_2752987/videos/720p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-720p_full_mp4.mp4?v=0"
    }
"hls": "https://private3-stream-ovp.vide.io/dl/6abf08b12203c84390a01fc4de65a4d5/62e904dc/equidia_2752987/videos/hls/63/03/S506303/V556523/playlist.m3u8?v=1",
"master": "https://private8-stream-ovp.vide.io/dl/6830b3a5039eef57f844bb08cd252584/62e904dc/equidia_2752987/videos/master/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523.mp4?v=0"
}
Run Code Online (Sandbox Code Playgroud)

"720": "https://private8-stream-ovp.vide.io/dl/9cb5a24a43a8d22d27e73b164020894d/62e904dc/equidia_2752987/videos/720p_full_mp4/63/03/S506303/V556523/20220731_35186008_00000hr-s506303-v556523-720p_full_mp4.mp4?v=0"包含我想要的视频和分辨率。

现在主要有两个问题:

  1. 如何获取XHR请求并准确地获取以 开头的请求equidia-vodce-p-api.hexaglobe.net?流行的解决方案是使用像selenium或 这样的网络测试器playwright,但我都不知道。
  2. 如何将其集成到 scrapy 蜘蛛中?

如果可能的话我想获得这种形式的代码:

class VideoPageScraper(scrapy.Spider):
    def __init__(self):
        self.start_urls …
Run Code Online (Sandbox Code Playgroud)

python xmlhttprequest scrapy web-scraping playwright

6
推荐指数
1
解决办法
1344
查看次数

当 roll() 应用于 groupby pandas 对象时,多索引重复

我有一个错误:

x.field.rolling(window=5,min_periods=1).mean() 其中x是一个pandas.core.groupby.groupby.DataFrameGroupBy对象。

我尝试了本页中提出的解决方案。所以我这样做了:

x.field.apply(lambda x: x.rolling(window=5,min_periods=1).mean())

与上面介绍的网页相反,我仍然遇到同样的错误。

+---------+---------+-------+--------------------+
| machin  | machin  | truc  | a column of series |
+---------+---------+-------+--------------------+
| machin1 | machin1 | truc1 | 1                  |
|         |         | truc2 | 2                  |
|         |         | truc3 | 3                  |
|         |         | truc4 | 4                  |
| machin2 | machin2 | truc1 | 100                |
|         |         | truc2 | 99                 |
|         |         | truc3 | 98 …
Run Code Online (Sandbox Code Playgroud)

python pandas rolling-computation pandas-groupby

5
推荐指数
1
解决办法
1155
查看次数