当前位置: 首页 > news >正文

做网站 需要多少钱山西网络营销外包

做网站 需要多少钱,山西网络营销外包,建设网站需要哪些手续,绿色环保网站模板文章 目录 1.前言2.爬取目标3.准备工作3.1 环境安装3.2 代理免费获取 四、爬虫实战分析4.1 翻页分析4.2 获取视频跳转链接4.3 下载视频4.4 视频音频合并4.5 完整源码 五、总结 1.前言 粉丝们#xff08;lsp#xff09;期待已久的Python批量下载哔哩哔哩美女视频教程它终于来… 文章 目录 1.前言2.爬取目标3.准备工作3.1 环境安装3.2 代理免费获取 四、爬虫实战分析4.1 翻页分析4.2 获取视频跳转链接4.3 下载视频4.4 视频音频合并4.5 完整源码 五、总结 1.前言 粉丝们lsp期待已久的Python批量下载哔哩哔哩美女视频教程它终于来了接下来跟着我的步骤一步步实现即可 2.爬取目标 本次博主爬取的目标是哔哩哔哩在搜索框输入关键词后的所有视频 3.准备工作 3.1 环境安装 Python3.10 编辑器PyCharm 由于哔哩哔哩的视频和音频是分开的所以本次我们需要用到moviepy模块进行合并moviepy 是一个强大的 Python 模块用于视频编辑如视频剪辑、视频合成、视频字幕添加、音频处理等执行下面pip命令进行安装 pip install requests # 网页数据爬取 pip install moviepy # 用于合并音频和视频3.2 代理免费获取 由于哔哩哔哩限制很严为了能正常获取数据博主使用了代理IP。 1、注册账号代理IP试用 2、选择查看代理IP产品 3、有动态IP、静态IP、机房IP、移动代理IP可以选择博主这里选择是机房IP 4、配置通道可以设置IP类型共享/独享、IP数、IP来源国家等等 5、配置完成后可以看到主机、用户名和密码等下我们添加到代码中去获取IP 6、下面代码只需要修改刚才获取到的主机、用户名和密码即可返回代理IP import requests # python基础爬虫库def get_ip():获取亮数据代理IPhost 你的主机 # 主机user_name 你的用户名 # 用户名password 你的密码 # 密码proxy_url fhttp://{user_name}:{password}{host} # 将上面三个参数拼接为专属代理IP获取网址proxies {http:proxy_url,https:proxy_url}url http://lumtest.com/myip.json # 默认获取的接口不用修改response requests.get(url,proxiesproxies,timeout10).text # 发送请求获取IP# print(代理IP详情信息,response)response_dict eval(response) # 将字符串转为字典方便我们提取代理IPip response_dict[ip]# print(IP,ip)return ipget_ip()成功返回IP获取成功 四、爬虫实战分析 4.1 翻页分析 我们搜索关键词后翻页看看链接的规律如下 第一页链接 https://search.bilibili.com/all?keyword%E7%BE%8E%E5%A5%B3%E8%B7%B3%E8%88%9Efrom_sourcewebtop_searchsearch_source5第二页链接 https://search.bilibili.com/all?vt67815047keyword%E7%BE%8E%E5%A5%B3%E8%B7%B3%E8%88%9Efrom_sourcewebtop_searchsearch_source5page1o30第三页链接 https://search.bilibili.com/all?keyword%E7%BE%8E%E5%A5%B3%E8%B7%B3%E8%88%9Efrom_sourcewebtop_searchsearch_source5page3o60第四页链接 https://search.bilibili.com/all?keyword%E7%BE%8E%E5%A5%B3%E8%B7%B3%E8%88%9Efrom_sourcewebtop_searchsearch_source5page4o90由上面可以看出规律我们只需要传入keyword、page和o参数即可 def main():keyword 美女跳舞 # 搜索的关键词page 1 # 爬取的页数每页30个视频jump_url_list [] # 用于存放搜索页每页的全部视频跳转链接for i in range(1,page1):if i 1:url fhttps://search.bilibili.com/all?keyword{keyword}from_sourcewebtop_searchsearch_source5else:url fhttps://search.bilibili.com/all?keyword{keyword}from_sourcewebtop_searchsearch_source5page{i-1}o{(i-1)*30}print(url)4.2 获取视频跳转链接 1、可以看到所有视频都在一个div下面 2、然后找到我们要的跳转链接可以看到在一个a标签下 3、接下来只需要获取每一个视频跳转链接即可 def get_jump_url(url,jump_url_list):获取视频跳转链接headers {Accept: */*,Accept-Language: en-US,en;q0.5,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36}# 发送请求response requests.get(url, headersheaders)# 获取网页源码html_str response.content.decode()# print(html_str)html_data etree.HTML(html_str)# 利用xpath取到所有的li标签div_list html_data.xpath(//div[classvideo-list row]/div)# 打印一下div标签个数# print(len(div_list))for div in div_list:# 拼接跳转链接jump_url https:div.xpath(.//div[classbili-video-card__wrap __scale-wrap]/a/href)[0]# print(jump_url)# 这里限制一下我们需要的跳转链接排除无用的链接if https://www.bilibili.com/video in jump_url:# 跳转链接存放在列表中jump_url_list.append(jump_url)5、获取成功检查一下跳转链接是否正常跳转 没有问题正常打开 4.3 下载视频 1、首先先找到标题所在标签 2、视频和音频都藏在script标签里面 3、遍历我们刚才的跳转链接列表取一个链接进行测试 def download_video(jump_url_list,keyword):# 遍历我们刚才获取到的所有跳转链接for jump_url in jump_url_list: # 先取一个视频进行测试print(正在下载,jump_url)# 发送请求headers {Accept: */*,Accept-Language: en-US,en;q0.5,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36}# 添加代理IP这里代理IP这里需要看3.2 获取代理IP自己去获取proxies get_ip()response requests.get(jump_url, headersheaders, proxiesproxies)# 视频详情jsonmatch re.search( __playinfo__(.*?)/scriptscript,response.text)playinfo json.loads(match.group(1))# 视频内容jsonmatch re.search( r__INITIAL_STATE__(.*?);\(function\(\),response.text)initial_state json.loads(match.group(1))# 视频分多种格式直接取分辨率最高的视频 1080pvideo_url playinfo[data][dash][video][0][baseUrl]# 取出音频地址audio_url playinfo[data][dash][audio][0][baseUrl]title initial_state[videoData][title]print(视频名字,title)# print(视频地址, video_url)# print(音频地址, audio_url)# 根据关键词创建文件夹if not os.path.exists(keyword):os.mkdir(keyword)# 下载视频headers.update({Referer: jump_url})video_content requests.get(video_url, headersheaders)received_video 0video_path f./{keyword}/{title}_video.mp4with open(video_path, ab) as output:while int(video_content.headers[content-length]) received_video:headers[Range] bytes str(received_video) -response requests.get(video_url, headersheaders)output.write(response.content)received_video len(response.content)# 下载音频audio_content requests.get(audio_url, headersheaders)received_audio 0audio_path f./{keyword}/{title}_audio.mp4with open(audio_path, ab) as output:while int(audio_content.headers[content-length]) received_audio:# 视频分片下载headers[Range] bytes str(received_audio) -response requests.get(audio_url, headersheaders)output.write(response.content)received_audio len(response.content)生成指定关键词文件夹并下载成功视频和音频 4.4 视频音频合并 这里我们定义一个合并函数需要传入视频和音频路径即可注意合并可能有点慢请耐心等待即可 def merge_video_audio(video_path, audio_path):传入原始视频和音频路径合并为新的视频并删除原始视频和音频print(视频视频合并中请耐心等待~)# 获取下载好的音频和视频文件vd VideoFileClip(video_path)ad AudioFileClip(audio_path)vd2 vd.set_audio(ad) # 将提取到的音频和视频文件进行合成output video_path.replace(_video,)vd2.write_videofile(output) # 输出新的视频文件# 移除原始的视频和音频os.remove(video_path)os.remove(audio_path)合并中 合并成功并删除原始的视频和音频 4.5 完整源码 下面完整代码需要看3.2获取 并 修改get_ip()函数中的 代理IP信息主机、用户名和密码还可以修改关键词和爬取的页数 import time import requests import json import re from lxml import etree from moviepy.editor import *def get_ip():获取亮数据代理IPhost 你的主机 # 主机user_name 你的用户名 # 用户名password 你的密码 # 密码proxy_url fhttp://{user_name}:{password}{host} # 将上面三个参数拼接为专属代理IP获取网址proxies {http: proxy_url,https: proxy_url}url http://lumtest.com/myip.json # 默认获取的接口不用修改response requests.get(url, proxiesproxies, timeout10).text # 发送请求获取IP# print(代理IP详情信息,response)response_dict eval(response) # 将字符串转为字典方便我们提取代理IPip response_dict[ip]# print(IP,ip)return ipdef get_jump_url(url,jump_url_list):获取视频跳转链接headers {Accept: */*,Accept-Language: en-US,en;q0.5,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36}# 发送请求response requests.get(url, headersheaders)# 获取网页源码html_str response.content.decode()# print(html_str)html_data etree.HTML(html_str)# 利用xpath取到所有的li标签div_list html_data.xpath(//div[classvideo-list row]/div)# 打印一下div标签个数# print(len(div_list))for div in div_list:# 拼接跳转链接jump_url https:div.xpath(.//div[classbili-video-card__wrap __scale-wrap]/a/href)[0]# print(jump_url)# 这里限制一下我们需要的跳转链接排除无用的链接if https://www.bilibili.com/video in jump_url:# 跳转链接存放在列表中jump_url_list.append(jump_url)def merge_video_audio(video_path, audio_path):传入原始视频和音频路径合并为新的视频并删除原始视频和音频print(原始视频音频合并中请耐心等待~)# 获取下载好的音频和视频文件vd VideoFileClip(video_path)ad AudioFileClip(audio_path)vd2 vd.set_audio(ad) # 将提取到的音频和视频文件进行合成output video_path.replace(_video,)vd2.write_videofile(output) # 输出新的视频文件# 移除原始的视频和音频os.remove(video_path)os.remove(audio_path)def download_video(jump_url_list,keyword):# 遍历我们刚才获取到的所有跳转链接for jump_url in jump_url_list: # 先取一个视频进行测试print(正在下载,jump_url)# 发送请求headers {Accept: */*,Accept-Language: en-US,en;q0.5,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36}# 添加代理IP这里代理IP这里需要看3.2 获取代理IP自己去获取proxies get_ip()response requests.get(jump_url, headersheaders, proxiesproxies)# 视频详情jsonmatch re.search( __playinfo__(.*?)/scriptscript,response.text)playinfo json.loads(match.group(1))# 视频内容jsonmatch re.search( r__INITIAL_STATE__(.*?);\(function\(\),response.text)initial_state json.loads(match.group(1))# 视频分多种格式直接取分辨率最高的视频 1080pvideo_url playinfo[data][dash][video][0][baseUrl]# 取出音频地址audio_url playinfo[data][dash][audio][0][baseUrl]title initial_state[videoData][title]print(视频名字,title)# print(视频地址, video_url)# print(音频地址, audio_url)# 根据关键词创建文件夹if not os.path.exists(keyword):os.mkdir(keyword)# 下载视频headers.update({Referer: jump_url})video_content requests.get(video_url, headersheaders)received_video 0video_path f./{keyword}/{title}_video.mp4with open(video_path, ab) as output:while int(video_content.headers[content-length]) received_video:headers[Range] bytes str(received_video) -response requests.get(video_url, headersheaders)output.write(response.content)received_video len(response.content)# 下载音频audio_content requests.get(audio_url, headersheaders)received_audio 0audio_path f./{keyword}/{title}_audio.mp4with open(audio_path, ab) as output:while int(audio_content.headers[content-length]) received_audio:# 视频分片下载headers[Range] bytes str(received_audio) -response requests.get(audio_url, headersheaders)output.write(response.content)received_audio len(response.content)# 合并视频和音频merge_video_audio(video_path, audio_path)print(********************这是一条隔离线***************************)time.sleep(1) # 限制速度不能太快了如果还是不行继续增加暂停时间def main():keyword 美女跳舞 # 搜索的关键词page 1 # 爬取的页数每页30个视频jump_url_list [] # 用于存放搜索页每页的全部视频跳转链接for i in range(1,page1):if i 1:url fhttps://search.bilibili.com/all?keyword{keyword}from_sourcewebtop_searchsearch_source5else:url fhttps://search.bilibili.com/all?keyword{keyword}from_sourcewebtop_searchsearch_source5page{i-1}o{(i-1)*30}# print(url)get_jump_url(url,jump_url_list)# 翻页休息一秒time.sleep(1)download_video(jump_url_list,keyword)if __name__ __main__:main()下载中 文件夹下全是视频 五、总结 代理IP对于爬虫是密不可分的但使用代理IP需要遵守相关法律法规和目标网站的使用规则不得进行非法活动或滥用代理IP服务高质量代理IP可以帮助爬虫正常采集公开数据信息有需要代理IP的小伙伴可以试试代理IP免费试用 如有问题可以关注公众号 “Bright Data亮数据”发送问题后会有官方客服进行回复
http://www.zqtcl.cn/news/833185/

相关文章:

  • 上海专业网站建设平台百度sem认证
  • 个人房产查询系统网站官网推广普通话 奋进新征程
  • 网站设计理念介绍石家庄业之峰装饰公司怎么样
  • 博乐建设工程信息网站ppt软件下载免费版
  • 宿州公司网站建设企业管理培训课程讲座大全
  • 企业网站营销的优缺点Vs做的网站调试时如何适应网页
  • 策划案网站构成怎么写wordpress建个人博客
  • 自己做的网站别人怎么访问美容行业网站建设多少价格
  • 网站建设与运营 教材 崔海口个人建站模板
  • 做本地网站赚钱吗wordpress桌面宠物
  • 滁州市城市建设投资有限公司网站云服务器里面做网站播放器
  • 做yy头像的网站口碑营销案例简短
  • 卖灯杆的做网站好网页ip代理
  • 做网站开发工具哪个好网络协议分析课程设计报告
  • 如何进行营销型企业网站的优化网站开发有很多种吗
  • 卡片式设计网站营销培训课程视频
  • 网站rss地址生成wordpress 首页幻灯片
  • 网络营销软件专业网站优化方案
  • 展览公司网站建设方案深圳正规做网站的公司
  • 网站做关键词首页淮南网站建设报价
  • 西山区城市建设局网站网页浏览器的英文缩写
  • 个人网站怎么做内容比较好昆明网站制作企业
  • 婚嫁网站建设计划专业 网站建设
  • 成品免费ppt网站做网站玩玩
  • 怎么给网站做seo优化网站的主页按钮怎么做的
  • 蓬莱做网站公司wordpress 加微信号
  • 建设网站如何优化关键词鞍山网站制作招聘网
  • 公司的网站是什么wordpress禁止s.w.org
  • 什么网站做蜘蛛池广渠门做网站的公司
  • 网站建设公司一年多少钱网站建设高校