爬取b站的网页信息

问题一:只能爬取到第一页的内容

对响应输出,不管怎么改url后面的内容的内容都是一样的

python 复制代码
import requests
headersvalue={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0'
}
url='https://search.bilibili.com/all?keyword=labubu&from_source=webtop_search&spm_id_from=333.1007&search_source=3&page=3&o=48'
r=requests.get(url,headers=headersvalue)
print(r.request.headers)
print(r.url)
print(r.status_code)
print(r.text)

可能性分析:

1.核心数据是前端通过 Ajax 动态加载的,直接请求我写的 URL,返回的是 "空壳 HTML"(只包含页面框架,数据靠 JS 渲染)

尝试定位api接口的位置:

直接搜search更方便

点进去看响应,没有发现我们想要的title什么的

退回去一个一个api看,找到了两个有点像的

第一个就是suggest,根据翻译猜测是推荐框

第二个是detail,仔细翻阅有我想要的标题,up主等信息

写到这里,我试了很久,决定暂时放弃,下面学到的内容很有用

问题二:爬取b站的入站必刷、综合热门的信息

首先,有一点很重要的,我之前一直以为爬取的内容是响应的text文本里的内容,其实不是的,text里的内容是服务器返回的原始内容,是没有经过处理的,我们要对text进行json解析,解析成字典或者是列表

明确这点的话,那我们找到合适的响应内容,能够解析成json格式的链接

像上面那样的,是我们需要的,找到以后就可以拿到网址(在标头里的请求url)

python 复制代码
import requests

headersvalue1= {
    'User-Agent': '自己的',
    'Referer': '自己的',
    'Cookie':"自己的"
}
params1={'number':350}
url1='https://api.bilibili.com/x/web-interface/popular/series/one'
r1= requests.get(url1, headers=headersvalue1,params=params1)
print(r1.status_code)
print(r1.json() )
print("\n")
headersvalue2={
    "user-agent":"自己的",
    "Referer":"自己的",
    "Cookie":"自己的"
}
params2={'page_size':100,'page':1}
url2='https://api.bilibili.com/x/web-interface/popular/precious'
r2= requests.get(url2, headers=headersvalue2,params=params2)
print(r2.status_code)
print(r2.json() )
相关推荐
寻星探路15 分钟前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
ValhallaCoder3 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
猫头虎4 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
八零后琐话4 小时前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python
青春不朽5125 小时前
Scrapy框架入门指南
python·scrapy
MZ_ZXD0016 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
全栈老石6 小时前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
梨落秋霜6 小时前
Python入门篇【模块/包】
python
阔皮大师8 小时前
INote轻量文本编辑器
java·javascript·python·c#