【问题标题】:Scraping Image from Instagram not working从 Instagram 抓取图像不起作用
【发布时间】:2020-09-18 09:19:36
【问题描述】:

我正在尝试使用 python 从 Instagram 抓取图像。为此,我编写了一小段代码。代码如下:

from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as req

url = "https://www.instagram.com/p/CE9CZmsghan/"

website = req(url)
pg = website.read()
website.close()

pgsoup = soup(pg,"html.parser")

print(pgsoup.findAll('div',{'class' : 'KL4Bh'}))

我刚刚编写了代码,直到将 html 转换为汤对象。奇怪的是,最后一行没有打印任何内容。只打印一个空列表。你知道为什么吗?你知道如何解决它吗?

【问题讨论】:

  • 这仅仅是因为javascript加载了图像。你需要硒。这个link 会有所帮助
  • 好的。我应该用硒做什么?几行代码会帮助我。谢谢!
  • 使用评论中的链接。你会发现几行代码

标签: python image web instagram screen-scraping


【解决方案1】:

使用selenium很简单:

from selenium import webdriver
import os


chrome_driver = os.path.abspath(os.path.dirname(__file__)) + '/chromedriver'
browser = webdriver.Chrome(chrome_driver)
url = 'https://www.instagram.com/p/CE9CZmsghan/'
browser.get(url)
image_url = browser.find_element_by_class_name('KL4Bh').find_element_by_tag_name('img').get_attribute('src')

输出

https://scontent-frx5-1.cdninstagram.com/v/t51.2885-15/e35/s1080x1080/119122193_326279868428134_4046851753042951785_n.jpg?_nc_ht=scontent-frx5-1.cdninstagram.com&_nc_cat=1&_nc_ohc=MU53uPwIAzoAX-OPPES&_nc_tp=15&oh=7e874789a4624589c92c9c4f5e030387&oe=5F8F3371

【讨论】:

  • 谢谢!!!我应该为此下载 ChromeDriver 吗?
  • @Sushil 根据您的 chrome 版本从 https://chromedriver.chromium.org/downloads 下载
  • 好的...但是我找不到适用于 Windows 的 64 位版本的 ChromeDriver。只有 32 个可用。
  • @Sushil 然后使用 32 或将系统更改为 Linux
  • 它正在工作。谢谢!有没有办法从有多个图像的帖子中下载所有图像?使用当前代码,我只能下载一个 img。请帮助我。
猜你喜欢
  • 1970-01-01
  • 2020-07-29
  • 2018-02-04
  • 2018-12-05
  • 2016-10-25
  • 1970-01-01
  • 2016-10-04
  • 2018-08-11
  • 2022-07-23
相关资源
最近更新 更多