Я думаю, что все использовали доуин и часто его используют. Давайте сегодня воспользуемся кодом, чтобы получить видеоданные.
Python 3.8 Pycharm
requests selenium json re
1. Уточните потребности Четко собирайте веб-сайты и контент данных
URL: https://www.douyin.com/user/MS4wLjABAAAAB0-gppwu15DtJJZmMpgUqakr7Jw_pmr7skR3IW6MwCQ?modal_id=7270865943398518050
Данные: ссылка на видео/название видео. 2. Анализ захвата пакетов Анализ захвата пакетов с помощью инструментов разработчика I. Открыть инструменты разработчика: F12. II. Обновите веб-страницу. III. Найдите ссылку на данные.
Ссылка на видео: https://v26-web.douyinvod.com/295eea512e6f187309e6181297ec185e/64e8a7f8/video/tos/cn/tos-cn-ve-15c001-alinc2/o8vKACOD9NSbaA3mnggzfIO5QAgkqHnGr7sAeB/?a=6383&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=609&bt=609&cs=2&ds=3&ft=bvTKJbQQqU-mfJ4ZPo0OW_EklpPiXV8zNMVJEdBqSpvPD-I&mime_type=video_mp4&qs=15&rc=NTg8NzpoNGY2aGU0N2k1PEBpajhuNTY6ZmhtbTMzNGkzM0AtMy4xY2E0Xi4xYDNjX15iYSM2bl5scjRvLWdgLS1kLWFzcw%3D%3D&btag=e00010000&dy_q=1692965337&l=20230825200856A1A3326D295C25055965
IV. Поиск по ключевому слову, Найдите пакет данных, соответствующий ссылке Ссылка на видео / заголовок --> Из исходного кода веб-страницы<Кодировать>
данные Сумка: https://www.douyin.com/user/MS4wLjABAAAAB0-gppwu15DtJJZmMpgUqakr7Jw_pmr7skR3IW6MwCQ?modal_id=7270865943398518050
Имитируемый браузер: <может быть напрямуюкопировать> response.text Получить текстовые данные ответа response.json() Получить данные ответа в формате JSON response.content Получить двоичные данные ответа Мы используем метод Request.get() для отправки запроса GET на указанный URL-адрес и получения содержимого ответа.
headers = {
# User-Agent пользовательский агент, Представляет основную идентификационную информацию браузера.
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
# запросить ссылку
url = 'https://www.douyin.com/user/MS4wLjABAAAArgJe6h-DzQcvyZ1O71yXSdJFn19Tqq8lFCIffgy5SlhwYlkseK5aM5ETF8KoaGDK?modal_id=7270476649714421046&vid=7269532986553552140'
# Отправить запрос
response = requests.get(url=url, headers=headers)
Используйте регулярные выражения для поиска и сопоставления определенных шаблонов в содержимом HTML и извлечения необходимых данных. Вызовите метод findall в модуле re. re.findall('данные: Данные, которые вам нужны', 'Источник данных: Где взять данные') --> Найти весь контент данных
# Получить текстовые данные ответа Получите исходный код веб-страницы.
html_data = response.text
# извлекатьзаголовок
title = re.findall('video_title" content="(.*?)"/>', html_data)[0]
# Извлечь информацию о видео <Закодированный>
video_info = re.findall('<script id="RENDER_DATA" type="application/json">(.*?)</script>', html_data)[0]
# декодирование
info = requests.utils.unquote(video_info)
# Поместите полную строку формата json, Преобразовать в тип данных словаря
json_data = json.loads(info)
# Согласно содержимому слева от двоеточия [ключ], Извлеките содержимое справа от двоеточия [значение]
video_url = 'https:' + json_data['app']['videoDetail']['video']['bitRateList'][0]['playAddr'][0]['src']
для Ссылка на видео Отправить запрос, Получить содержимое двоичных данных, Сохранить локальную папку
video_content = requests.get(url=video_url, headers=headers).content
with open('video\\' + title + '.mp4', mode='wb') as f:
f.write(video_content)
print(title)
print(video_url)
# Модуль автоматизированного тестирования
from selenium import webdriver
# демо супер орла
from chaojiying import Chaojiying_Client
# супер орел Пароль учетной записи
from password import account, password
# цепочка действий
from selenium.webdriver.common.action_chains import ActionChains
# Откройте браузер, Посетите веб-сайт
driver = webdriver.Chrome()
driver.get('https://www.douyin.com/user/MS4wLjABAAAAB0-gppwu15DtJJZmMpgUqakr7Jw_pmr7skR3IW6MwCQ')
# задерживать
driver.implicitly_wait(10)
time.sleep(2)
# получать Проверочный кодовые картинки
img_label = driver.find_element_by_css_selector('.captcha_verify_container')
# скриншот держать Проверочный кодовые картинки
img_label.screenshot('yzm.png')
# Позвоните в платформу кодирования --> Помогите нам определить координаты текста
chaojiying = Chaojiying_Client(Учетная запись, пароль, '96001')
# Читать картинки
im = open('yzm.png', 'rb').read()
result = chaojiying.PostPic(im, '9004')['pic_str']
for res in result.split('|'):
x = res.split(',')[0]
y = res.split(',')[-1]
ActionChains(driver).move_to_element_with_offset(img_label, int(x), int(y)).click().perform()
driver.find_element_by_css_selector('.captcha_verify_action div:last-of-type').click()
time.sleep(2)driver.implicitly_wait(10)
lis = driver.find_elements_by_class_name('Eie04v01')
for li in lis:
video_id = li.find_element_by_css_selector('a').get_attribute('href').split('/')[-1]