thinkphp网站后台模板,网站建设需要用到什么,客户关系管理系统,建立网站需要多少钱责任y湖南岚鸿联系文章目录 爬虫的基本步骤一些工具模拟浏览器并监听文件视频爬取易错点一个代码示例参考 爬虫的基本步骤
1.抓包分析#xff0c;利用浏览器的开发者工具 2.发送请求 3.获取数据 4.解析数据 5.保存数据
一些工具
requests, 用于发送请求#xff0c;可以通过get#xff0c;p… 文章目录 爬虫的基本步骤一些工具模拟浏览器并监听文件视频爬取易错点一个代码示例参考 爬虫的基本步骤
1.抓包分析利用浏览器的开发者工具 2.发送请求 3.获取数据 4.解析数据 5.保存数据
一些工具
requests, 用于发送请求可以通过getpost等方式。通常需要加标头headers将Cookies和User-Agentreferer带上。re, 正则表达式用于查找目标字符串解析网页。urllib.parse.unquote, 用于解码 URL 编码的字符串。URL 编码也称为百分号编码是将某些字符转换为 % 后跟两位十六进制数的形式以便在 URL 中安全传输。json.loads(), 将json数据格式转化为字典。pprint.pprint(), 用于“美化打印”pretty-print复杂的数据结构如字典、列表等。它可以使输出更易于阅读特别是在处理嵌套结构时。DrissionPage.ChromiumPage用于模拟浏览器。
模拟浏览器并监听文件
dpChromiumPage() dp.listen.start(‘文件名称’) dp.get(url) respdp.listen.wait() resp_dictresp.response.body
视频爬取易错点
短视频一般是mp4的文件。长视频往往是m3u8流媒体需要爬取多个ts文件。但是长视频也可能是音频(audio)视频(video)的形式传输并利用ffmpeg合成。
爬完一个视频后应当停顿几秒防止服务器发爬机制。
一个代码示例
from DrissionPage import ChromiumPage
import requests
import json
import re
from tqdm import tqdm
# 打开浏览器
dp ChromiumPage()
# 打开网址
url input(请输入视频链接)
dp.get(url)
# 监听数据包
dp.listen.start(proxyhttp)
# 等待数据包加载
resp dp.listen.wait()
# 获取相应数据
response resp.response.body
# print(response)
json_data response[vinfo]
# print(type(json_data))
# 将json字符串转换成json字典
info_json json.loads(json_data)
# print(type(info_json))
# 取出视频切片链接包的地址
m3u8_url info_json[vl][vi][0][ul][ui][-1][url]
# print(m3u8_url)headers {# 用户信息
cookie:
填写自己的用户信息,referer:
https://v.qq.com/,# 防盗链user-agent:
填写自己的设备信息# 设备信息
}
# 请求获取所有的视频ts片段
m3u8 requests.get(urlm3u8_url, headersheaders).text
# print(m3u8)
ts_list re.findall(,\n(.*?)\n#, m3u8)
ts_name /.join(m3u8_url.split(/)[:-1]) /
# print(ts_name)
# print(ts_list)
for ts in tqdm(ts_list):# 拼接完整的ts视频链接ts_url ts_name ts# 获取视频片段内容ts_content requests.get(urlts_url, headersheaders).content#以追加的形式写入2进制数据with open(保存位置.mp4, modeab) as f:f.write(ts_content)参考
https://blog.csdn.net/2201_75495538/article/details/143438422