1.写在前面了。真的,为什么那么多人看别人的比赛,我发两张加起来才一百次。算了算了,游戏算了,反正你们不爱看~今天就来试试爬头条的辣妹,不知道能不能受得了~二、准备工作1、使用环境是python3.8pycharm2021.2专业版2.要用到的第三方模块seleniumrequestsparsel3.大体流程既然你不喜欢我啰嗦,但是流程我还是得给你写出来,所以我会单独列出来。1.网站分析(明确要求)在视频网页源码中找到embedUrl对应的链接;在链接中找到视频播放地址,在元素面板中;发现常规embedUrl上的groupby_id其实就是当前视频链接上的id,下载视频时只需要一个id,就可以下载视频了;2.代码实现过程构建embedUrl,使用selenium访问链接,提取视频链接地址,拼接视频链接地址,使用requests发送请求获取视频二进制数据并保存视频。4.代码显示分析首先import点击moduleimportrequestsfromseleniumimportwebdriver进入浏览器设置options=webdriver.ChromeOptions()1.buildembedUrlgroup_id=input("请输入你要下载的视频id:")url='https://www.ixigua.com/embed?group_id='+group_idheadlessbrowseroptions.add_argument("--headless")添加伪装options.add_argument('User-Agent="Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/96.0.4664.45Safari/537.36"')2.使用selenium访问链接驱动:browserdriver=webdriver.Chrome(executable_path="chromedriver.exe",options=options)打开一个webdriver配置:代码运行浏览器的一个中间人driver.get(url)隐式等待:最多等五秒,如果一秒加载完成,继续执行driver。implicitly_wait(5)3.提取视频链接地址info=driver.find_elements_by_xpath('//*[@id="player_default"]/xg-controls/xg-definition/ul/li[1]')video_url=info[0].get_attribute("url")4,拼接视频链接地址video_url='http:'+video_url5,使用requests发送请求,获取视频二进制数据video_data=requests.get(video_url).contentwithopen('1.mp4',mode='wb')asf:f.write(video_data)5.所有代码importrequestsfromseleniumimportwebdriver#进入浏览器设置options=webdriver.ChromeOptions()#1.构建embedUrlhttps://www.ixigua.com/embed?group_id=7029910152576926238group_id=input("请输入你要下载的视频id:")url='https://www.ixigua.com/embed?group_id='+group_id#headlessbrowseroptions.add_argument("--headless")#添加一个Pretendoptions.add_argument('User-Agent="Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/96.0.4664.45Safari/537.36"')#2.使用selenium访问此Link#驱动:browserdriver=webdriver.Chrome(executable_path="chromedriver.exe",options=options)#打开网页#驱动配置:代码运行的中间人browserdriver.get(url)#implicitwait:最多等待五秒,继续执行driver.implicitly_wait(5)#3.提取视频链接地址info=driver.find_elements_by_xpath('//*[@id="player_default"]/xg-controls/xg-定义/ul/li[1]')video_url=info[0].get_attribute("url")#4.拼接视频链接地址video_url='http:'+video_url#5.使用requests发送请求,获取视频二进制数据video_data=requests.get(video_url).contentwithopen('1.mp4',mode='wb')asf:f.write(video_data)print("爬取成功!!!")#留个报错,看看大家有没有聪明的找出来,兄弟们看完觉得有帮助,记得点赞三遍哦~
