python爬虫源代码_零基础自学爬虫(5)B站有哪些爬虫的视频学习资源-附Python源代码...

前几天看到有人提问:。b站哪个python爬虫视频讲的较好?谢谢各位能解答一下。?

于是顺手写了一个小爬虫,把数据爬了下来。 今天有空放一下源代码。

数据源,是在B站搜索框直接搜索“爬虫”,并选择按收藏排序。总结果大概50页,然后爬取该数据。

第一步:启动 chromedriver,无头模式。

from time import sleep
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pandas as pd
import re
import json# 启动 driver(无头模式)
def start_driver():chrome_options = Options()chrome_options.add_argument("--headless")chrome_options.add_argument("--disable-gpu")driver = webdriver.Chrome(options=chrome_options)return driver

第二步:爬取一页搜索结果,封装为函数。

# 获取一页搜索结果
def get_onepage(driver,url,n):driver.get(url)sleep(3)rlts = driver.find_elements_by_class_name("info")info = {}pttn = "(http.*?)?from"for rlt in rlts:t1 = rlt.find_element_by_xpath('./div[1]/a')v[n] = {"title":t1.text,"url":re.findall(pttn,t1.get_attribute("href"))[0]}t2 = rlt.find_element_by_xpath('./div[3]')x = t2.text.split('n')v[n]["watch_num"] = x[0]v[n]["update"] = x[1]v[n]["upper"] = x[2]n += 1return v,n

第三步:逐页读取所有数据。

driver = start_driver()
n = 1
pages = 51
for i in range(1,pages):url = "https://search.bilibili.com/all?keyword=%E7%88%AC%E8%99%AB&from_source=nav_suggest_new&order=stow&duration=0&tids_"+str(i)try:v,n = get_onepage(driver,url,n)except:break

第四步:数据结果存储。

# 数据保存为 json 文件
file = "bilibili_crawler.json"
with open(file,"w",encoding="utf-8") as f:json.dump(v,f,indent=4,sort_keys=False, ensure_ascii=False)# 也可保存为表格文件
df = pd.DataFrame(v).T
file2 = "bilibili_crawler.csv"
df.to_csv(file2)

点赞,收藏,关注,分享四连。好人一生平安。

看不懂的,评论留言问我。

想要所有数据,站内私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tcl手机 手写java_TCL魔法手指V2.0 (使笔记本Synaptics触摸板变身为手写板)

TCL魔法手指功能概述识别率最高:最新的识别核心,识别率达到99.3%,并配合目前最好的多字切分技术,可流畅的连笔书写,随意的倒插笔书写,完全尊重您的书写习惯。无需特殊硬件:只要您的笔…

用VBA去除Excel工作表保护密码

今天帮同事解决个EXCEL问题,现记在这,以作备忘 现象: 想要修改保护单元 格的内容,在使用“工具”菜单“保护”子菜单的“撤消工作表保护”命令,这时要求输入密码。 解决方案:网上找到一文http://www.excel1…

python连接数据库mysql错误1045_django 连接数据库出现1045错误的解决方式

根据菜鸟教程Django教程学习,运行"python manage.py migrate" 报错,出现django.db.utils.OperationalError: (1045, “Access denied for user ‘账号localhost (using password: YES)”)错误。这种错误指的是连接数据库时账号密码错误。1.只需…

MVC学习笔记1 MVC概述

MVC概述MVC三种角色– Model: 用于存储数据的组件(与领域模型概念不同)。– View: 根据Model数据进行内容展示的组件– Controller:接受并处理用户指令(操作Model),选择一个Vie…

python wxpython_python GUI wxPython

wxPython 安装 pip install wxPython (安装失败)推荐豆瓣镜像pip3 install -i https://pypi.douban.com/simple wxpythonC:\Users\dangzhengtao>pip3 install -i https://pypi.douban.com/simple wxpythonLooking in indexes: https://pypi.douban.com/simpleCollecting wxp…

java多个页面爬取_java爬取html页面(简易通用版)

项目环境ide:intellij IDEA 2017.2.5编程语言:java数据库:mysql管理工具:maven需要导包:mysql-connector-java,jsoup(解析html)等,如果要解析json可能还要导入gson的包。我把重要的依赖贴出来(默…

设计一个医院

源于个人网站:http://programmer.2008red.com/programmer/article_647_777_1.shtml 收到一封来自Exoweb的邮件,让去面试(败的很惨,呵呵。过了好长时间了,都忘记这事了,结果这公司来了邮件,说不能…

powerbi的功能介绍_Power BI:1分钟快速生成可视化报表

1.什么是Power BI ?Power BI 是微软推出的可视化工具,先来看看微软官方是怎么介绍的:使用用于自助服务和企业商业智能 (BI) 的统一、可扩展平台(该平台易于使用,可帮助获取更深入的数据见解),连…

易语言 java支持_开源Java客户端可以连接易语言服务器

我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后,都要先跟当前的客户端通信完之后才能再处理下一个连接请求。 这在并发比较多的情况下会严重影响程序的性能,为此,我们可以把它改为如下这种异步…

Javascript--File对象

描述: 提供对文件属性的访问.属性: 属性描述Attributes设置或返回文件或文件夹的属性DateCreated返回指定文件或文件夹的创建时间DateLastAccessed返回最近访问文件或文件夹的创建时间DateLastModified返回最后修改指定文件和文件夹的日期和日期Drive返回指定文件或文件夹所在的…

idea怎么调试jsp页面_解决idea的c标签错误

Hello,World.土土来啦!最近做jq项目,遇到各种各样的问题。首先就是c标签的错误。对,没错,就是这一串因为土土上学期学的是jsp,所以是在myeclipse做的,这学期就想在idea做后端。然后复制粘贴之前的项目的时候&#xff0…

[SlickEdit] SlickEdit支持目录别名FTP控件更新

有阵没写代码了,SlickEdit升级到2009还没怎么用过,Option面板改动得更像Eclipse了,反正IDE工具也不知道到底谁抄袭谁,只是Symbol Coloring设置太唬人了吧,,默认的symbol coloring总是出现字符偏移&#xff…

有一台服务器远程失败其他电脑可以_使用闲置电视盒子打造家庭网盘和远程下载器和小型服务器(二)...

使用闲置电视盒子打造家庭网盘和远程下载器系列(二)本系列分为五章一、综述二、电视盒子的root三、app的安装和服务器环境的搭建四、网盘系统的部署和使用五、远程下载系统搭建和实现昨天写了第一章,我这是首次写东西,没想到能得到这么多朋友关注&#x…

php echo 前后有字符串,php echo 输出字符串函数详解、多行输出方法

echo "abc";//字符串echo "abc$c";//字符串变量echo abc$c;//字符串 asd$c $c不是变量echo "abc"."de";echo "abc","de";echo $a;echo $a.$b;echo $a,$b;echo $a.$b.$c;echo $a,$b,$c;echo "abc{$c}de"…

基于C#.NET的--Windows进程管理工具

基于.NET(C#)编写。 实现了进程的树状显示父子关系,其中应用到了WMI编程,以及P-invoke. 下载地址: 点击右键另存为 地址如上,需要安装.NET环境,地址:http://www.microsoft.com/downloads/details.aspx?displaylangzh-…

php编译成二进制文件_2020年小米高级 PHP 工程师面试题

1、通过哪一个函数,可以把错误转换为异常处理?A:set_error_handlerB:error_reportingC:error2exceptionD:catch正确答案:A答案分析:set_error_handler () 可指定一个回调函数&#x…

php实现视频转gif,在Linux上将视频转换成动态gif图片

本文记录一下在linux上将视频转换成动态gif图片的方法。首先,需要在Linux系统上安装FFmpeg,我会用这个工具去解压从视频中解压出视频帧。下面的指令会解压出独立的视频帧,将它们保存为GIF图片。确保使用诸如("out%04d.gif")的输出文…

用GDB Server进行远程调试

某些时候由于模拟环境的限制,调试必须要在目标板上进行。由于嵌入式系统资源比较有限,一般不能在目标板上直接构建GDB的调试环境,这时我们通常采用gdbgdbserver的远程调试方法:gdbserver在目标板中运行,而gdb则在主机上…

前端的请求最大线程数是多少啊_面试官:创建多少个线程合适,我该怎么说?...

转载:https://mp.weixin.qq.com/s/j5d4Jtxo0RgJWgpnG9HxlQ为什么要使用多线程?防止并发编程出错最好的办法就是不写并发程序既然多线程编程容易出错,为什么它还经久不衰呢?A:那还用说,肯定在某些方面有特长…

php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。 2 print() 只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase .prin1 echo(…