上一篇文章通过selenium工具自动搜索爬取哔哩哔哩上面的视频相关信息,今天我们接着上一篇文章,保存视频的图片到本地。
首先找到要爬取的网页数据所在的位置,如下图

并且,右键点击该网址,可以选择在新标签页中打开,在新标签页中,除了显示图片不会显示其他东西。如下
到这就是原本的图片数据了,如果跳转过后依然不是这样,就需要继续往下寻找到最终的图片数据地址。
在上一篇文章的基础上就添加了一个保存图片的函数,上代码。

def img_save(soup):img_url_list = soup.find(class_='video-list clearfix').find_all_next(class_='img-anchor')


查找包含图片连接的标签,得到如上所示片段

     index = 0for url in img_url_list:img_url = url.find('img').get('src')print(img_url)
//i2.hdslb.com/bfs/archive/176fdf5ba89c5eff3c0f300aaf53967dcddff923.jpg@320w_200h.webp

获取图片链接地址,得到如上文本

     if img_url != '':img_request = ('https:'+ img_url).replace('webp', 'jpg')print(img_request)img_resp = requests.get(img_request)
https://i2.hdslb.com/bfs/archive/176fdf5ba89c5eff3c0f300aaf53967dcddff923.jpg@320w_200h.jpg

将得到的网址进行拼接,并替换最后的‘webp’为‘jpg’,如果不修改直接保存到本地,图片会无法正常显示

             if not os.path.exists("cxk_video_img"):os.mkdir('cxk_video_img')with open('cxk_video_img/%d.jpg' %index, 'wb') as f:f.write(img_resp.content)index += 1time.sleep(1)

最后就是新建文件夹,保存图片到文件夹中。
但是有一个问题,就是有的图片网址获取到的为空,不知道是否和网速也有关系,还是代码本身部分还有我没有发现的欠缺,欢迎各位大佬指正。
完整代码如下:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import xlwt
import time
import re
import requests
import osbrowser = webdriver.Chrome()
#browser = webdriver.PhantomJS()
WAIT = WebDriverWait(browser, 20)
browser.set_window_size(1400, 900)book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet('蔡徐坤篮球', cell_overwrite_ok=True)
sheet.write(0, 0, '名称')
sheet.write(0, 1, '地址')
sheet.write(0, 2, '描述')
sheet.write(0, 3, '观看次数')
sheet.write(0, 4, '弹幕数')
sheet.write(0, 5, '发布时间')n = 1def search():try:print('开始访问b站....')browser.get("https://www.bilibili.com/")search = browser.find_element_by_xpath('//div[@class="nav-search"]/form/input')search.send_keys("蔡徐坤 篮球")search.send_keys(Keys.ENTER)# 跳转到新的窗口print('跳转到新窗口')all_h = browser.window_handlesbrowser.switch_to.window(all_h[1])# html = browser.page_source# # print(html)# soup = BeautifulSoup(html, 'html.parser')# save_to_excel(soup)# total_index = soup.find(class_='page-item last').find(class_='pagination-btn')get_source()total_index = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR,"li.page-item.last > button")))# pattern = re.compile('<div class="page-wrap">.*?<li class="page-item last">.*?(\d+).*?</div>', re.S)# total_index = int(re.findall(pattern, html)[0])return int(total_index.text)except TimeoutException:return search()def next_page(page_num):try:print('获取第(%d)页数据' % page_num)next_btn = WAIT.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'li.page-item.next > button')))next_btn.click()get_source()except TimeoutException:browser.refresh()return next_page(page_num)def save_to_excel(soup):list = soup.find(class_='video-list clearfix').find_all_next(class_='info')for item in list:item_title = item.find('a').get('title')item_link = item.find('a').get('href')item_dec = item.find(class_='des hide').textitem_view = item.find(class_='so-icon watch-num').textitem_biubiu = item.find(class_='so-icon hide').textitem_date = item.find(class_='so-icon time').textprint('爬取:' + item_title)global nsheet.write(n, 0, item_title)sheet.write(n, 1, item_link)sheet.write(n, 2, item_dec)sheet.write(n, 3, item_view)sheet.write(n, 4, item_biubiu)sheet.write(n, 5, item_date)n = n + 1def img_save(soup):img_url_list = soup.find(class_='video-list clearfix').find_all_next(class_='img-anchor')index = 0for url in img_url_list:img_url = url.find('img').get('src')print(img_url)if img_url != '':img_request = ('https:'+ img_url).replace('webp', 'jpg')print(img_request)img_resp = requests.get(img_request)if not os.path.exists("cxk_video_img"):os.mkdir('cxk_video_img')with open('cxk_video_img/%d.jpg' %index, 'wb') as f:f.write(img_resp.content)index += 1time.sleep(1)def get_source():WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'ul.video-list.clearfix')))# browser.refresh()html = browser.page_source# print(html)soup = BeautifulSoup(html, 'html.parser')save_to_excel(soup)img_save(soup)def main():try:total = search()# print(total)for i in range(2, int(total)+1):next_page(i)finally:browser.close()browser.quit()if __name__ == '__main__':main()book.save(u'蔡徐坤篮球.xls')

本来还想爬取保存视频到本地,结果没法得到视频的最终地址,所以只能暂且搁置,保存视频到本地,也可以采用保存图片相类似的方式。

Python爬取哔哩哔哩视频的相关信息后续相关推荐

  1. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  2. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!

    [CSDN 编者按]<哪吒>看哭了无数人!编者看的那场,有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下 ...

  3. Python爬取B站5000条视频,揭秘为何千万人为它流泪

    作者 | Yura编辑 | 胡巍巍来源 | CSDN(ID:CSDNnews) 导语:我们特邀作者Yura爬取B站5000条视频,为你揭秘电影<哪吒>的更多"优秀梗", ...

  4. Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪

    导读:<哪吒>看哭了无数人!有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下来. 人们喜欢<哪吒& ...

  5. python爬取琳琅社区整站视频(一晚6000部)

    琳琅社区(传闻中最受男人喜爱的网站),哼哼,我倒要看看是不是真的 该项目用于爬取琳琅社区整站视频(仅供学习) 主要使用:python3.7 + scrapy2.19 + Mysql 8.0 + win ...

  6. 我用Python爬取了14年所有的福彩3D信息,彩民们,只能帮你们到这了

    作者|丁彦军 来源|恋习Python 前两天,在网上看到一个有意思的问题:彩票预测靠谱么?为什么还有那么多的人相信彩票预测? 暂且不说,彩票预测是否靠谱?彩票预测也分人而异,江湖上骗术很多,有些甚至会 ...

  7. python爬虫能秒杀么_面试题之用python爬取并夕夕不同时段秒杀商品信息

    先上效果图吧(因为确实也是刚入门,很多细节没有注意到的,各位尽管提出来) 并夕夕很多时候都在不停的有秒杀商品的活动,对于价格问题,我就没法讨论了,但是人家能吸引到这么多流量,真本事还是有些的. 我只在 ...

  8. python 抓包秒杀_面试题之用python爬取并夕夕不同时段秒杀商品信息

    先上效果图吧(因为确实也是刚入门,很多细节没有注意到的,各位尽管提出来) 并夕夕很多时候都在不停的有秒杀商品的活动,对于价格问题,我就没法讨论了,但是人家能吸引到这么多流量,真本事还是有些的. 我只在 ...

  9. python抓取抖音热门视频_要是30行代码!7步教会你Python爬取网页抖音热门视频

    前言 抖音短视频相信大家都听过,也不陌生对吧!可以看到海量的短视频,涵盖了各大行业.个人觉得抖音有毒,刷着刷着根本停不下来,一看时间就是凌晨3.4点.今天带大家爬取抖音网页版的视频数据!一睹为快吧 本 ...

最新文章

  1. 程序猿惯用口头禅,你被击中了吗?
  2. 为什么Jedis操作后要主动归还?
  3. Redis 如何保持和MySQL数据一致【一】
  4. spring boot web jar说明
  5. pythonmsgbox怎么使用_如何使用tkinter的messagebox
  6. Qt自定义事件实现及子线程向主线程传送事件消息
  7. 请求WebApi的几种方式
  8. Maven仓库管理器
  9. java类库支持_第十二章:开发支持类库
  10. 【sklearn第十八讲】神经网络模型
  11. 2021世界机器人大赛— 青少年机器人设计大赛
  12. Sentinel-1 EW GRD数据SNAP处理
  13. 拜读经典——大话设计模式(一)——温习C#
  14. 华东师范大学计算机考研专业,2017年华东师范大学计算机科学与软件工程学院考研专业目录...
  15. chrome浏览器崩溃,设置也崩溃的解决办法
  16. 黑帽实战 | 给大家讲讲一个二类电商的大佬的故事!
  17. activiti会签功能
  18. 信号完整性学习笔记-IBIS模型
  19. 对话京东安全首席架构师:电商平台构建安全防护体系关键点
  20. HDFS Router-based Federation

热门文章

  1. 奇迹之剑符文辅助养成 奇迹之剑符文合成脚本工具技巧
  2. Android录制屏幕视频 将视频转换为GIF动态图
  3. java 学生考勤系统(一、登录功能)
  4. 广州市白云计算机职业学院,广州市白云区职业学校名单
  5. php dropzone.js中文教程,使用Dropzone.js上传的示例代码
  6. 学生信息管理系统MySql课程设计
  7. 克拉申的第二语言习得理论
  8. 从中序与后序遍历构造二叉树
  9. Microsoft Store应用商城上架「正式版」苹果iCloud同步客户端
  10. Server2016部署域控