gpt4 book ai didi

python-3.x - 如何使用 python 获取 Instagram 帖子的正确视频 url

转载 作者:行者123 更新时间:2023-12-04 04:07:46 25 4
gpt4 key购买 nike

我正在尝试构建一个程序,该程序运行一个函数,该函数输入帖子的 url,输出帖子包含的图像和视频的链接。它对图像非常有用。但是,在获取视频链接时,它返回了一个错误的 url。我不知道如何处理这种情况。

https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/86731551_2762014420555254_3542675879337307555_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jYXJvdXNlbF9pdGVtIiwicWVfZ3JvdXBzIjoiW1wiaWdfd2ViX2RlbGl2ZXJ5X3Z0c19vdGZcIl0ifQ&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=WDuXskvIuLEAX9rj7MU&vs=17877888256532912_3147883953&_nc_vs=HBksFQAYJEdCOXJLd1gyMVdhWUNkQUpBS090UGo3eEhDb3hia1lMQUFBRhUAAsgBABUAGCRHTFBXTUFVTXNPaG5XcW9EQU5KUEE5bEZVdVZxYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAABgAFuD4nJGH9sE%2FFQIoAkMzLBdAEszMzMzMzRgSZGFzaF9iYXNlbGluZV8xX3YxEQB17gcA&_nc_rid=97e769e058&oe=5EDF10A5&oh=3713c35f89fca1aa9554a281aa3421ed

https://scontent-gmp1-1.cdninstagram.com/v/t50.2886-16/0_0_0_\x00.mp4?_nc_ht=scontent-gmp1-1.cdninstagram.com&_nc_cat=100&_nc_ohc=Wnu_-GvKHJoAX9F_ui1&oe=5EDE8214&oh=7920ac3339d5bf313e898c3cbec85fa2

这是两个网址。第一个是从网页的源代码中复制的,而第二个是从 pyquery 抓取的数据中复制的。它们来自相同的 Instagram 帖子,相同的路径,但它们完全不同。第一个效果很好,但第二个效果不佳。我该如何解决这个问题?如何获得正确的视频网址?

我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。

这是我与问题相关的代码

def getUrls(url):
URL = str(url)
html = get_html(URL)
doc = pq(html)
urls = []
items = doc('script[type="text/javascript"]').items()
for item in items:
if item.text().strip().startswith('window._sharedData'):
js_data = json.loads(item.text()[21:-1], encoding='utf-8')
shortcode_media = js_data["entry_data"]["PostPage"][0]["graphql"]["shortcode_media"]
edges = shortcode_media['edge_sidecar_to_children']['edges']

for edge in edges:
is_video = edge['node']['is_video']
if is_video:
video_url = edge['node']['video_url']
video_url.replace(r'\u0026', "&")
urls.append(video_url)
else:
display_url = edge['node']['display_resources'][-1]['src']
display_url.replace(r'\u0026', "&")
urls.append(display_url)


return urls

提前致谢。

最佳答案

您的代码没有任何问题。这是 Instagram 的一个已知间歇性问题,其他人也遇到过:https://github.com/arc298/instagram-scraper/issues/545

似乎还没有已知的修复方法。


此外,虽然与您的问题无关,但值得一提的是您不需要检查 display_resources 对象来获取图像的 URL:

display_url = edge['node']['display_resources'][-1]['src']

已经有一个可用的 display_url 属性(我猜你已经看到了,基于变量名?)。所以你可以简单地做:

display_url = edge['node']['display_url']

关于python-3.x - 如何使用 python 获取 Instagram 帖子的正确视频 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62243191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com