爬虫第七篇数据爬取及解析

embedded/2025/2/22 21:21:45/

这篇博客旨在分享学习过程中的心得和体会,如果有错误请指出,感谢大家。

经过前面的学习,那么我们也就进入了数据爬取的阶段,大家跟着我的步伐一起来学习一下,爬虫的数据爬取与数据解析(本篇主要针对于带有页码的网页)

第一站单页数据获取

首先我们从简单的带页码的网页开始爬取,为啥从带页码的网页开始,有页码的网页点击页码会重新刷新页码数据,可以去掉一部分我们不需要的数据(因为我们一般需要的数据都在页码包含的url里面)

我们接下来实现输入我们需要的页码,然后爬虫自动去获取对应页面的数据,然后返回给我们,再将页码内容需要的具体数据输出

第一步找到页码在url上面的对应数据位置

我们先将其中几页的目标url,将其取下来,比对一下,哪个数据有可能是对应页码的数据

我试验的网址是{pageindex=页码}所以我们可以把url = f‘http://....&pageindex={你定义的变量}

这样改完url之后,获取完你输入的数字后,他会自动写入url,取获取对应网页的数据那么代码如下

import requests# 用户输入页码
pageindex = input('请输入你要查看的神秘页码:')
url = f'https://example.com/api/data?pageIndex={pageindex}'
res = requests.get(url)

记得url都最好带上这个f,这样他会用fstring去获取,不容易出错 ,不然会出现解析不出来的情况

 第二步解析目标数据

然后就是解析目标数据,然后去获取我们需要的数据

比如目标数据格式为

{"code":200,"data":{

"posts":[{"id"=0,"name"=xiaoli

}]}}

这个时候我们需要去获取最里面的id和name数据我们应该怎么写呢?

print(['data']['post'][0]['id'])

第三步循环取出所有需要的id 

那么我们再衍生一下,通过循环将列表post里面的所有的id都取出来需要怎么写呢?

#将响应数据转换为字典类型
res_data = res.jason()
for i in res_data['data']['post']#通过for循环遍历数据,取出其中的idprint(i['id'])

由此我们就完成了我们最开始的第一个目标,输入页码跳转对应页面,并输出需要的数据

 第二站多页数据获取

获取多页的数据比如获取1-10页的全部的id数据

第一步构建循环去获取1-10页的全部数据

这是知道需要的页码数量的情况下的

import request
for page_index in range(1,11):url = https://....pageindex={page_index}....res = request.get(url)res=res.jason()

 第二步通过循环去解析对应页码里面数据里的id

import request
num = 1
for page_index in range(1,11):url = https://....pageindex={page_index}....res = request.get(url)res_data=res.jason()for i in res_data['data']['post']#通过for循环遍历数据,取出其中的idprint(i['id'])

第三站未知页数数据获取

根据上面的内容,那么我们只要加一个判定上面时候拉去数据为空就停止即可完成全部网页的拉取

import requestspage_index = 1  # 代表分页
count = 1  # 代表取出的序号
while True:url = f'https://...pageIndex={page_index}...'res = requests.get(url)res_data = res.json()# 结束的判断条件if res_data['Data']['Posts'] == []:#根据网页的数据去判断什么时候拉不到数据break# 解析数据for i in res_data['Data']['Posts']:print(count, i['id'])count += 1print(f'第{page_index}页数据已经全部获取完毕')page_index += 1

以上可以去弄比较简单的网页,如果网页会去判断你是否为真人,那么你就需要加上伪装

headers = {'user-agent':'你网页里的useragent'
}


http://www.ppmy.cn/embedded/164442.html

相关文章

深入剖析Spring MVC

一、Spring MVC 概述 1. 什么是 Spring MVC? Spring MVC 是基于 Spring 框架的 Web 框架,它实现了 MVC 设计模式,将应用程序分为三个核心部分: Model:封装应用程序的数据和业务逻辑。 View:负责渲染数据…

AI到底能做些什么:详细产品功能对比

1. 引言 人工智能(AI)作为当今科技领域的热门话题,已经在多个行业中展现出巨大的潜力。从自然语言处理到计算机视觉,从语音识别到自动化机器人,AI的应用范围广泛且深入。本文将详细探讨AI的核心功能、在各行业的应用、…

低代码技术在医院的应用与思考

近年来,低代码这一概念在医疗信息化领域频繁出现。那么,低代码究竟是什么?它因何而生?在医院信息系统建设与运维中,低代码技术又有哪些适用的应用场景?对于用户而言,低代码技术又存在哪些有待改…

idea 部署 AJ-Report 启动的注意事项

AJ-Report 入门参考: AJ-Report 初学(入门教程) gitee 下载:https://gitee.com/anji-plus/report/releases 根据上面提供的 gitee 下载链接,点击直接下载 最上面的就是最新版本的,旧版本往下拉就可以找到,有三个下载…

免费deepseek的API获取教程及将API接入word或WPS中

免费deepseek的API获取教程: 1 火山方舟 https://console.volcengine.com/中注册 填写邀请码:WGDGUTTL 即可获取3250万R1模型tokens 或硅基流动 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行…

Vue Axios

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue 使用 - Axios 目录 Axios 请求方法 功能 安装 使用CDN 引入axios 使用axios 赋值 总结 Axios Axios,基于 Promise 的 HTTP 客户端,可以工作于浏览器中,也可以在 node.js 中使用…

JMeter 中实现 100 个用户在 3 秒内并发登录

在 JMeter 中实现 100 个用户在 3 秒内并发登录,需要合理配置线程组、定时器和测试逻辑。以下是具体步骤: 1. 创建测试计划 打开 JMeter。右键点击“Test Plan”,选择 Add > Threads (Users) > Thread Group。 : 设置为 100(模拟 100 个用户)。 : 设置为 3

计算机视觉算法实战——图像风格迁移(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 一、图像风格迁移领域简介✨✨ 图像风格迁移(Image Style Transfer)是计算机视觉领域的核心技术之一,旨在…