我有一个 Python 脚本,用于抓取 html 页面中 src 元素的 <video> 属性。使用浏览器检查器对 this page 的视频,可以看到需要抓取的视频元素,但是直接查看页面源代码只能显示 ember 应用程序 JavaScript 文件。

我需要做什么才能访问包含 <video> 元素的“内部框架”标记,以便我可以抓取 src 属性?

编辑所以它不是那么广泛

最佳答案

无需走完整的浏览器/ Selenium 路线。只需进行更多调查,您就会看到它是如何工作的:

对于 vine URL https://vine.co/v/i3pQ70vK3iv ,您需要描述视频的 json 文件。

如此简单地抓取 URL https://archive.vine.co/posts/i3pQ70vK3iv.json 。这将返回如下文件:

{
  "username": "Bleacher Report",
  "userIdStr": "906307026416705536",
  "postId": 1352573572862066700,
  "verified": 1,
  "description": "😳💯",
  "created": "2016-06-09T06:14:43.000000",
  "permalinkUrl": "https://vine.co/v/i3pQ70vK3iv",
  "userId": 906307026416705500,
  "profileBackground": "0x333333",
  "vanityUrls": [
    "BleacherReport"
  ],
  "entities": [],
  "postIdStr": "1352573572862066688",
  "comments": 293,
  "reposts": 2384,
  "videoLowURL": "http://mtc.cdn.vine.co/r/videos_r2/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=oVIxbcFKL5aaqsbMx_q.7wt4zEnhgQ0w",
  "loops": 19182516,
  "videoUrl": "http://mtc.cdn.vine.co/r/videos/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=av0W8OaLWSzghq.9__iKdSU4y75FDNg.",
  "videoDashUrl": "http://mtc.cdn.vine.co/r/videos_dashhd/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4?versionId=98zVYTYAx16DJka7Oa1yQu20utGrQch9",
  "thumbnailUrl": "http://v.cdn.vine.co/r/thumbs/DC69CF91B61352573549554077696_558739dd749.17.0.4126553130190094381.mp4.jpg?versionId=7LmJNEI3C6bsHkF3t9jqu5k1O2xEHo9l",
  "explicitContent": 0,
  "likes": 6593
}

您将在返回的 json 中找到作为 videoUrl 属性的视频本身的 URL。

关于python - 抓取内框 HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42102514/

10-13 08:47