python爬虫详解(一)——爬取bilibili网页基本内容_小木_.的博客-程序员宝宝_bilibili 爬虫

技术标签: 爬虫  python  数据挖掘  

python爬取基本内容

用爬虫爬取bilibili网站排行榜游戏类的所有名称及链接

导入requests、BeautifulSoup

import requests
from bs4 import BeautifulSoup

然后我们需要插入网站链接并且要解析网站并打印出来

e = requests.get('https://www.bilibili.com/v/popular/rank/game')   #当前网站链接
html = e.content
soup = BeautifulSoup(html,'html.parser')    #解析html
print(soup)

我们可以看到密密麻麻的代码函数,但不太简洁明了,我们去优化一下

 继续插入如下代码这个代码是可以爬取我们想要的类,可以更简介的简化代码

div_people_list = soup.find('ul', attrs={'class': 'rank-list'})  #爬取ul类class为rank-list下的数据

可以看到还是不够简介

 我们继续简化它

继续插入如下代码

ca_s = div_people_list.find_all('a', attrs={'class': 'title'})   #爬取a类class为title下的数据

可以看到链接及主题都提取出来了,但还是有瑕疵

 我们加入这行代码挨个打印并提取标题及链接,由于链接提取出来的是//www.bilibili.com/video/BV1yZ4y1D7ef

前面没有http:点击进去会出现错误,所有我们需要在前面加入http:进行连接在一起打印

for t in ca_s:
    url = t['href']
    name = t.get_text()
    print(name+'\t点击链接直接观看链接:'+f'http:{url}')

可以看到我们的标题及连接都爬取出来了 

完整代码:

import requests
from bs4 import BeautifulSoup

e = requests.get('https://www.bilibili.com/v/popular/rank/game')   #当前网站链接
html = e.content
soup = BeautifulSoup(html,'html.parser')    #解析html
div_people_list = soup.find('ul', attrs={'class': 'rank-list'})  #爬取ul类class为rank-list下的数据
ca_s = div_people_list.find_all('a', attrs={'class': 'title'})   #爬取a类class为title下的数据

#挨个传输到t,然后打印数据
for t in ca_s:
    url = t['href']
    name = t.get_text()
    print(name+'\t点击链接直接观看链接:'+f'http:{url}')
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46625757/article/details/122278342

智能推荐

VMware虚拟化_一直在路上的十安的博客-程序员宝宝

虚拟化是为一些组件创建基于软件的或虚拟(而不是物理)表现形式的过程。虚拟化可以应用于应用、服务器、存储和网络,它是一种可以为所有规模的企业降低 IT 开销,同时提高效率和敏捷性的最有效方式。

公关战中的兵法攻略_ChinaPR_home的博客-程序员宝宝

文丨公关之家 作者:方韵引言: 公关战的背后是数不尽的利益纠葛,借助公关战这一“软”战役,企业可以更好地打好市场瓜分这一“硬仗”。2019年的6月,注定不太平。“618”带来的“猫狗拼”大战还有余波,三个男人的厮杀还未平息,一场公关大战的序幕再次拉开。6月20日,伊利公开対撕蒙牛,发表长文《北京冬奥组委无奈奥运史上最大丑闻将上演!中粮集团蒙牛乳业联合美国企业破坏冬奥大局》。在文章中伊利痛斥...

我们计划为EasyDSS定制开发一款超低延时的EasyPlayer Flash播放器_weixin_30906671的博客-程序员宝宝

现象最近团队在做EasyDSS RTMP流媒体服务器开发的过程中,遇到了一个关于延时累积的问题,先大概描述一下过程: 在EasyRTMP Android进行长时间的RTMP推流压力测试,在EasyDSS的web客户端中进行Flash播放,起初进行播放的开始阶段,延时是极小的,大概在0.4s左右,但随着播放过程的延长,我们会观察到一个现象,一旦客户端出现...

负载均衡的形式 详解_sumword_的博客-程序员宝宝_负载均衡详解

该文通篇复制,仅仅是怕该文章在知乎失效,故转载记录,仅供自己记录使用,文末有出处什么是负载均衡?负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,负载均衡主要是实现对系统的高可用、网络压力的缓解、处理能力的伸缩。对于数据流量过大,往往单一设备是无法承担的,需要多台的设计进行分流。它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】...

一天一道LeetCode(91-120)_summer_bugs的博客-程序员宝宝

一天一道LeetCode(91-119)文章目录一天一道LeetCode(91-119)91.解码方法92.反转链表 II93.复原IP地址95.不同的二叉搜索树 II96.不同的二叉搜索树97.交错字符串98.验证二叉搜索树99.回复二叉搜索树(未解决)100.相同的树101.对称二叉树102.二叉树的层序遍历103.二叉树的锯齿形层次遍历104.二叉树的最大深度105.从前序与中序遍历序列构造二叉树106.从中序与后序遍历序列构造二叉树107.二叉树的层次遍历108.将有序数组转换为二叉搜索树109.

用verilog实现8bit乘法器(1)_summer_awn的博客-程序员宝宝_八位乘法器verilog代码

输入:wire [7:0] din1, din2输出:reg [15:0] dout逻辑:组合逻辑此乘法器采用移位并相加的算法实现,占用面积比较大,还有很大的优化空间。verilog代码如下:module multi(input [7:0] din1,din2, output reg [15:0] dout);reg[3:0] i;[email protected](*)begin dout = 0 ; for(i = 0 ; i <8 ; i = i + 1) begin ..

随便推点

SPSS数据分析_Yang青青的博客-程序员宝宝_spss计算bmi

第一题表1 居民健康状况调查情况 编号 身高 (cm) 体重 (kg) 代谢综合征 性别 胆固醇 (mmol/L) 1 173.0 87.5 0 0 4.17 2 168.0 .

TP5框架中数据库增删改查操作getField、setField、setInc、setDec、field以及与TP3的对比_qq_2190630418的博客-程序员宝宝

TP3中读取某个字段:$User = M("User"); // 实例化User对象$nickname = $User->where('id=3')->getField('nickname');//查询ID为3的nicknameTP3更新某个字段:$User = M("User"); // 实例化User对象$User-> where('id=5')->setField('name','ThinkPHP');// 更改用户的name值TP3对于统计字段(通常指的是数字

题解:整数划分问题(DP)_sun897949163的博客-程序员宝宝

总时间限制: 200ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。输入 标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 < N <= 50, 0 < K <= N)输出 对于每组测试数据,输出

Nginx之负载均衡_孙琛斌(浮生)的博客-程序员宝宝

注,大家可以看到,由于我们网站是发展初期,nginx只代理了后端一台服务器,但由于我们网站名气大涨访问的人越来越多一台服务器实在是顶不住,于是我们加了多台服务器,那么多台服务器又怎么配置代理呢,我们这里以两台服务器为案例,为大家做演示。1.upstream 负载均衡模块说明案例:下面设定负载均衡的服务器列表。1234567

0x5afd57aa处有未经处理的异常:0xC0000005:读取位置0xcdcdcdc1时发生访问冲突_真·skysys的博客-程序员宝宝

0x5afd57aa处有未经处理的异常:0xC0000005:读取位置0xcdcdcdc1时发生访问冲突0xC0000005一般是NULL指针造成的。在Debug状态下,出现异常的时候,选择“Break“,然后看程序停在那一行,再看看是否是这一行使用了NULL指针。...

Protocol Buffer学习教程之开篇概述(一)_MingoJ的博客-程序员宝宝

原创文章,不得转载1. Protocol Buffer是什么Protocol Buffer是google旗下的产品,用于序列化与反序列化数据结构,但是比xml更小、更快、更简单,而且能跨语言、跨平台。你可以把你的数据按你的要求结构化,然后可以转化成多种数据流,同时其他语言可以通过不同的流转化成自己熟悉的语言的数据格式。如C语言开发者,定义了一个User数据结构,java开发者可以把此数据流

推荐文章

热门文章

相关标签