目前在 Google Colab 中从 Flickr 下载视频最简单的方法是什么?

问题描述 投票:0回答:1

主要问题

几个月来,我一直在 Colab 中使用 Selenium 从 Flickr 下载视频。然而,从大约一周前开始,我的代码就停止工作了。

它开始在尝试打开的所有视频上收到502 Bad Gateway错误。因为我认为这是一个暂时的错误或类似的问题,所以我给了它几天并等待问题消失,但它没有消失。

我尝试更改 Selenium 的配置,尽管效果不大。我也尝试只使用 Urllib,但它给了我同样的错误。我的最后一张卡使用了代理,几乎可以工作,但无法实际下载加载的视频。

我避免在这里提问,但似乎这个问题已经打败了我。有人可以帮我吗?

补充代码

这是我一直在使用的代码的主要部分:

!sudo apt update
!pip install chromedriver-autoinstaller selenium
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

from IPython.display import clear_output
from selenium import webdriver
import chromedriver_autoinstaller
import sys
import urllib, re

sys.path.insert(0,'/usr/lib/chromium-browser/chromedriver')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chromedriver_autoinstaller.install()
clear_output()
driver = webdriver.Chrome(options=chrome_options)

videos_folder = "/content/videos/"
os.mkdir(videos_folder)

def download_video_from_url(url, name):
  driver.get(url)
  html = driver.page_source
  video_url = re.findall(r'"[^ ]*\.mp4[^ ]*"', html)
  if (len(video_url) > 0):
    video_url = video_url[0][1:-1]
    try:
      with open(videos_folder + name, "wb") as f:
        f.write(urllib.request.urlopen(video_url).read())
      return 1
    except: return 0
  else: return 0

这是我使用代理的代码:

!sudo apt update
!pip install chromedriver-autoinstaller selenium
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

from IPython.display import clear_output
from selenium import webdriver
import chromedriver_autoinstaller
import sys
import time
import urllib, re

sys.path.insert(0,'/usr/lib/chromium-browser/chromedriver')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chromedriver_autoinstaller.install()
clear_output()
driver = webdriver.Chrome(options=chrome_options)

videos_folder = "/content/videos/"
os.mkdir(videos_folder)

def download_video_from_url(url, name):
  try:
    driver.get("https://www.proxysite.com/")
    element = driver.find_element(By.XPATH, '//*[@id="url-form-wrap"]/form/div[2]/input')
    element.send_keys(url)
    element.send_keys(Keys.ENTER)
    html = driver.page_source
    time.sleep(5)
    element = driver.find_element(By.XPATH, '/html/body')
    for i in range(5): element.send_keys(Keys.TAB)
    for i in range(2): element.send_keys(Keys.ENTER)
    return 1
  except: return 0
python selenium-webdriver web-scraping google-colaboratory flickr
1个回答
0
投票

你能解决这个问题吗?我也有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.