【问题标题】:Getting Error 403: Forbidden despite using headers. What could be going wrong?出现错误 403:尽管使用了标头,但仍被禁止。可能出了什么问题?
【发布时间】:2021-08-17 04:19:56
【问题描述】:

我正在尝试从其直接链接下载 TikTok 视频,尽管添加了标题,但我仍然收到错误 403。我想知道可能出了什么问题?

from selenium import webdriver
import urllib.request
import time

path = "c:\chromedriver.exe"
driver = webdriver.Chrome(path)

driver.get("https://www.tiktok.com/@mrpianoman/video/6962623261184167173?lang=en&is_copy_url=1&is_from_webapp=v1"
time.sleep(0.5)

video_link = driver.find_element_by_css_selector(".video-card-one-column.default video").get_attribute("src")
time.sleep(0.5)

opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
urllib.request.install_opener(opener)

url = video_link
local = r'C:\Users...'
urllib.request.urlretrieve(url,local)

我明白了:

urllib.error.HTTPError:HTTP 错误 403:禁止

我不知道我还能做什么。

【问题讨论】:

  • 不知道为什么你删除了我之前的正确答案并在你的问题中使用它而不是接受它。接受正确答案是一个好习惯,它会让人们更愿意回答你。

标签: python web-scraping urllib


【解决方案1】:

如果您在印度,只需打开 vpn 并继续抓取

【讨论】:

  • 您好,欢迎来到 StackOverflow 社区!我看到你是一个新的贡献者,我强烈建议你看看这个关于如何回答问题的指南:stackoverflow.com/help/how-to-answer
【解决方案2】:

我遇到了同样的问题。尝试了标题并遇到了同样的问题。这非常令人沮丧。我本来希望将它保留到 urllib,但最终放弃并使用 pynput 来控制鼠标和键盘输入。需要针对屏幕上视频的位置以及上下文菜单中的“将视频另存为”选项调整代码。这将使您有机会获得所需鼠标位置的 X、Y:

from pynput.mouse import Controller as MouseController
import time

mouse = MouseController()

time.sleep(5)
print(mouse.position)
time.sleep(5)
print(mouse.position)
time.sleep(5)
print(mouse.position)
time.sleep(5)
print(mouse.position)
exit()

这将为您保存视频,并将视频链接末尾的数字作为文件名(未显示设置您的网络驱动程序并获取视频网址和视频源网址的代码):

from pynput.keyboard import Key, Controller
from pynput.mouse import Button
from pynput.mouse import Controller as MouseController

keyboard = Controller()
mouse = MouseController()

driver.get(video_src)
mouse.position = (700,400)
time.sleep(0.1)
mouse.press(Button.right)
mouse.release(Button.right)
time.sleep(0.1)
mouse.position = (750,500)
time.sleep(0.1)
mouse.press(Button.left)
mouse.release(Button.left)
time.sleep(1)
keyboard.type(f'C:\\{video_url[-19:]}.mp4')
time.sleep(1)
keyboard.press(Key.enter)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-18
    • 2013-05-12
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多