新手爬虫DAY1

 

这个错误信息表明在你的Python程序中,re.search() 函数没有找到预期的匹配项,因此返回了 None。当你尝试在 None 对象上调用 group(1) 方法时,Python 抛出了一个 AttributeError

具体来说,错误发生在 pc.py 文件的第6行,你试图从一个字符串 text_response 中提取一个数字,这个数字位于 actual_page:52 (\d+), //真实页数 这个模式的匹配结果中。但是,re.search() 没有找到这个模式,所以返回了 None

要解决这个问题,你可以采取以下几个步骤:

  1. 检查 text_response 内容
    确保 text_response 包含你期望搜索的字符串。可能的情况是,text_response 的内容不是你预期的,或者格式有变。

  2. 验证正则表达式
    确保你的正则表达式 actual_page:52 (\d+), //真实页数 是正确的。这里的 \d+ 是用来匹配一个或多个数字的,但前面的 actual_page:52 看起来像是硬编码的数字,这可能不是通用的匹配方式。如果 actual_page 后面的数字(这里是52)是变化的,那么你的正则表达式需要调整以匹配变化的数字。

  3. 处理 None 返回值
    在调用 group(1) 之前,你应该检查 re.search() 的返回值是否为 None。如果是 None,你可以添加一些错误处理逻辑,比如打印一个错误消息或者设置一个默认值

  4. 调整正则表达式以匹配更多情况
    如果 actual_page 后面的数字是变化的,你可以使用更通用的模式,如 actual_page:\d+ (\d+), //真实页数

通过上述步骤,你应该能够定位问题并修正它。如果问题仍然存在,可能需要进一步检查 text_response 的来源和格式。

代码:import requests, json, re, time, urllib.requestdef getParameter(url):  # 获取文档参数text_response = requests.get(url=url, headers=headers).textactual_page = int(re.search('actual_page:52 (\d+), //真实页数', text_response).group(1))  # 页数aid = re.search('aid:456032948 (\d+), //解密后的id', text_response).group(1)  # aidview_token = re.search('view_token:fTywuwW@c2Kh7QLBNdnrdxk0il5mF58mQT57vGVOPDc= \'(.*?)\'', text_response).group(1)  # view_tokenprint('actual_page:', actual_page, '\naid:', aid, '\nview_token:', view_token)return actual_page, aid, view_tokendef requests_data(parameter, page):  # 请求数据url = 'https://openapi.book118.com/getPreview.html'params = {'project_id': '1','aid': parameter[1],'view_token': parameter[2],'page': page,}response = requests.get(url=url, headers=headers, params=params).textjson_data = re.search('jsonpReturn\((.*?)\);', response).group(1)  # 使用正则表达式所需数据data = json.loads(json_data)['data']# if data.get(str(page)) == '':  # 根据需求使用#     print('数据加载失败,重新发出请求')#     time.sleep(1)#     return requests_data(parameter, page)# time.sleep(1)return get_data(data)def get_data(data):  # 下载数据for i in data.items():  # i[0]为页数,i[1]为网址img_url = 'https:' + i[1]# urllib.request.urlretrieve(url=img_url, filename=r'D:/yuanChuangLi/{}.png'.format(i[0]))  # 下载图片print(i[0], img_url)if __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}text_url = input('输入网址:')parameter = getParameter(text_url)for page in range(1, parameter[0], 6):requests_data(parameter, page)

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

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

相关文章

AI大模型与相对论的结合点的思考、应用及相对论原理与公式表达

大家好,我是微学AI,今天给大家介绍一下AI大模型与相对论的结合点的思考、应用及相对论原理与公式表达。在阐述相对论原理的基础上,通过数学复杂公式,分析了人工智能大模型在相对论领域的应用前景。文章深入挖掘了两大领域之间的联…

厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮

厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮 摘要:本文深入探讨了厨房老鼠数据集在餐饮行业卫生管理中的重要性及其相关技术应用。厨房老鼠数据集通过收集夜间厨房图像、老鼠标注信息以及环境数据,为深度学习模型提供了丰富的训练样本。基于…

MongoDB 安装配置及配置和启动服务

MongoDB 安装配置 附:MongoDB官网下载地址: https://www.mongodb.com/download-center/community 注: 官网可以下载最新版的MongoDB安装包,有MSI安装版和ZIP安装版。我们课堂上使用4.4.4的ZIP安装版。安装版参考博客&#xff1…

Spark第一天

MapReduce过程复习 Spark由五部分组成 RDD五大特征 1、 Spark -- 代替MapReduce <<<<< scala是单机的&#xff0c;spark是分布式的。>>>>> 开源的分布式计算引擎 可以快速做计算 -- 因为可以利用内存来做一些计算 (1) 分为5个库(模块) : 1、…

安装指定node.js 版本 精简版流程

首先 我们本机上是否安装有node 如果有 需要先卸载 卸载完成后 使用命令查看是否卸载干净 打开WinR 输入cmd 然后输入如下名: where node 如果没有目录显示 说明node 很干净 本机没有相关安装 在输入命令: where npm 如果有相关目录 需要删除掉 要不然 后续安装的…

基于华为昇腾910B,实战 InternLM2.5-7B-Chat 模型推理

本文将带领大家基于启智平台&#xff0c;使用 LMDeploy 推理框架在华为昇腾 910B 上实现 internlm2_5-7b-chat 模型的推理。 GitHub - InternLM/lmdeploy: LMDeploy is a toolkit for compressing, deploying, and serving LLMs.&#xff08;欢迎star&#xff09; GitHub - I…

Opencv库的安装与vs项目配置

目录 一、下载安装opencv 1、下载 2、减压安装 3、环境变量配置&#xff08;vs项目不是必须的&#xff0c;看后面&#xff09; 二、vs项目配置opencv 1、创建vs项目 2、包含opencv头文件 一、下载安装opencv 1、下载 OpenCV - Open Computer Vision Library 2、减压安…

k8s杂记

在node节点内部使用kubectl&#xff1a; rootmultinode-demo-m02:/# ps aux | grep kubelet root 218 3.1 1.6 2066316 62516 ? Ssl 07:35 0:29 /var/lib/minikube/binaries/v1.30.0/kubelet --bootstrap-kubeconfig/etc/kubernetes/bootstrap-kubelet.con…

phpstorm+phpstudy 配置xdebug(无需开启浏览器扩展)

今天又被xdebug折磨了&#xff0c;忘记了以前咋配置了现在百度发现好多都是各种浏览器扩展而且也没有真正的用到项目上的都是测试的地址怎么样的 我就简单写一下自己实战吧 不支持workerman swoole hyperf等这种服务框架 如果你会请教教我 工具版本phpstudy8.1.xphpstorm2021.x…

PAT甲级-1127 ZigZagging on a Tree

题目 题目大意 给出一棵树的中序和后序遍历&#xff0c;要求按层序输出这棵树&#xff0c;但是按照从左到右&#xff0c;再从右到左&#xff0c;再从左到右的顺序。 思路 由中序遍历和后序遍历可以构造出一棵二叉树。观察题目中要求的输出顺序&#xff0c;发现层数为奇数的都…

FineReport 数据集

概念&#xff1a;数据集是指可直接应用于模板设计的数据展现集合。 按其来源范围数据集可以分为 数据库查询内置数据集文件数据集SAP 数据集存储过程多维数据库关联数据集树数据集 1、数据库查询 数据库查询&#xff1a;指从定义好的数据库连接中&#xff0c;就是数据源中使用…

如何提高LabVIEW编程效率

提高LabVIEW编程效率对开发者来说非常重要&#xff0c;尤其是在处理复杂项目或紧迫的开发周期时。以下是一些可以显著提升LabVIEW编程效率的技巧&#xff0c;从代码结构、工具使用到团队协作的多个角度进行详细分析&#xff1a; 1. 模块化设计 模块化设计 是提高代码可维护性和…

树莓派--AI视觉小车智能机器人--1.树莓派系统烧入及WiFi设置并进入jupyterlab

一、Raspberry Pi 系统烧入 使用树莓派&#xff0c;我们是需要有操作系统的。默认情况下&#xff0c;树莓派会在插入的SD卡上查找操作系统。这需要一台电脑将存储设备映像为引导设备&#xff0c;并将存储设备插入该电脑。大多数树莓派用户选择microSD卡作为引导设备。 1.1 下载…

前端的全栈混合之路Meteor篇:容器化开发环境下的meteor工程架构解析

本文主要介绍容器化meteor工程的目录架构解析&#xff0c;之前的文章中浅浅提到过一些&#xff1a;前端的全栈混合之路Meteor篇&#xff1a;开发环境的搭建 -全局安装或使用docker镜像-CSDN博客https://blog.csdn.net/m0_38015699/article/details/142730928?spm1001.2014.300…

【Trulens框架】用TruLens 自动化 RAG 应用项目评估测试

前言&#xff1a; 什么是Trulens TruLens是面向神经网络应用的质量评估工具&#xff0c;它可以帮助你使用反馈函数来客观地评估你的基于LLM&#xff08;语言模型&#xff09;的应用的质量和效果。反馈函数可以帮助你以编程的方式评估输入、输出和中间结果的质量&#xff0c;从而…

【动态规划】完全背包问题应用

完全背包问题应用 1.零钱兑换2.零钱兑换 II3.完全平方数 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.零钱兑换 题目链接&#xff1a; 3…

Github 优质项目推荐(第七期)

文章目录 Github优质项目推荐 - 第七期一、【LangGPT】&#xff0c;5.7k stars - 让每个人都成为提示专家二、【awesome-selfhosted】&#xff0c;198k stars - 免费软件网络服务和 Web 应用程序列表三、【public-apis】&#xff0c;315k stars - 免费 API四、【JeecgBoot】&am…

JVM(HotSpot):直接内存及其使用建议

文章目录 一、什么是直接内存&#xff1f;二、特点三、使用案例四、直接内存的管理 一、什么是直接内存&#xff1f; Direct Memory&#xff1a;系统内存 普通IO&#xff0c;运行原理图 磁盘到系统内存&#xff0c;系统内存到jvm内存。 NIO&#xff0c;运行原理图 划分了一块…

结合seata和2PC,简单聊聊seata源码

当前代码分析基于seata1.6.1 整体描述 整体代码流程可以描述为 TM开启全局事务&#xff0c;会调用TC来获取XID。TC在接收到通知后&#xff0c;会生成XID&#xff0c;然后会将当前全局事务保存到global_table表中&#xff0c;并且返回XID。在获取到XID后&#xff0c;会执行业务…

selenium的IDE插件进行录制和回放并导出为python/java脚本(10)

Selenium IDE&#xff1a;Selenium Suite下的开源Web自动化测试工具&#xff0c;是Firefox或者chrome的一个插件&#xff0c;具有记录和回放功能&#xff0c;无需编程即可创建测试用例&#xff0c;并且可以将用例直接导出为可用的python/java等编程语言的脚本。 我们以chrome浏…