爬虫高阶(一):解决验证码及爬取知网论文数据

爬取知网论文数据

  • 解决验证码
  • 实现过程
  • 代码

解决验证码

首先我们必须要识别出验证码,才能让进行下一步。

分享一个好用的网站
云码
在这里插入图片描述
接着按照流程操作来得到积分,点击个人中心查看自己的token即可(会用到,一次大约10积分,初始有300免费积分,1元能有1000积分
在这里插入图片描述

实现过程

在这里插入图片描述
我们使用的是DrissionPage这个简单又迅速的库
✨️ 概述

DrissionPage 是一个基于 python 的网页自动化工具。

它既能控制浏览器,也能收发数据包,还能把两者合而为一。

可兼顾浏览器自动化的便利性和 requests 的高效率。

它功能强大,内置无数人性化设计和便捷功能。

它的语法简洁而优雅,代码量少,对新手友好。

项目地址:gitee

🎇 强大的自研内核
本库采用全自研的内核,内置了 N 多实用功能,对常用功能作了整合和优化,对比 selenium,有以下优点:

无 webdriver 特征 无需为不同版本的浏览器下载不同的驱动 运行速度更快 可以跨 iframe 查找元素,无需切入切出 把
iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换
可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)
可处理非open状态的 shadow-root

🎇 亮点功能
除了以上优点,本库还内置了无数人性化设计。

极简的语法规则。集成大量常用功能,代码更优雅 定位元素更加容易,功能更强大稳定
无处不在的等待和自动重试功能。使不稳定的网络变得易于控制,程序更稳定,编写更省心 提供强大的下载工具。操作浏览器时也能享受快捷可靠的下载功能
允许反复使用已经打开的浏览器。无需每次运行从头启动浏览器,调试超方便 使用 ini
文件保存常用配置,自动调用,提供便捷的设置,远离繁杂的配置项 内置 lxml 作为解析引擎,解析速度成几个数量级提升 使用 POM
模式封装,可直接用于测试,便于扩展 高度集成的便利功能,从每个细节中体现

实现流程:输入文献关键词+文献爬取页数+保存的文件名即可得到

代码

from DrissionPage import ChromiumPage
import time
from DrissionPage.common import Actions
import random
from tqdm import tqdm
from DrissionPage import WebPage
import csv
import base64
import requests,json#识别很难的验证码,但是使用有限制,别一直狂用,不然就会没了。
def get_vecode():url = "https://www.jfbym.com/api/YmServer/customApi"with open(r'验证码.png','rb') as f:im = base64.b64encode(f.read()).decode()data = {"token":" ",  #输入自己的token"type":"10103",#效果不行就改成10103"image":im,}_headers = {'Content-Type': 'application/json'}response = requests.request

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

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

相关文章

[AIGC] MySQL与PostgreSQL事务完整性的对比

事务完整性是数据库管理系统最为重要的特性之一。在简单的术语中,一个事务可以被定义为一个逻辑单元的工作,它一旦被提交,要么全部成功,要么全部失败。这种“全部或无”的特性体现了一个数据库事务的原子性,是保证数据…

elementUI组件库样式修改整理

一、整体修改样式注意点 避免!important,能使用深度选择器就用深度选择器主题色使用变量,方便后期统一修改,最好新建一个单独的文件,专门用于定义公共变量样式文件尽量放在一个文件里,方便后期维护 二、单独element …

Css提高——Css3盒子模型border-box

1、盒子模型的种类与区别 CSS3 中可以通过 box-sizing 来指定盒模型,有2个值:即可指定为 content-box、border-box,这样我们 计算盒子大小的方式就发生了改变。 CSS3 盒子模型 可以分成两种情况: 1. box-sizing: content-box 盒…

安卓面试题多线程 111-115

111. 简述在 Java 中 Executor 和 Executors 的区别 ?Executors 工具类的不同方法按照我们的需求创建了不同的线程池,来满足业务的需求。 Executor 接口对象能执行我们的线程任务。 ExecutorService 接口继承了 Executor 接口并进行了扩展,提供了更多的方法我们能获得任务执…

ArcGIS Pro与R:携手优化生态系统服务评估流程

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

深度学习基础之《TensorFlow框架(9)—案例:实现线性回归》

一、线性回归原理复习 1、什么是线性回归 (1)有个假设函数,假定特征值和目标值满足这样的关系 w1x1 w2x2 ... wnxn b y (2)构造损失函数 均方误差、最小二乘法 (3)优化损失 正规方程和梯度…

electron-builder打包

打包配置: "build": {"appId": "cc11001100.electron.example-001", // 程序包名"copyright": "CC11001100", // 版权相关信息"productName": "example-001", // 安装包文件名"direct…

easyExcel 读取excel(按条读取)

MAVEN <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version></dependency>代码 import com.al…

Python 解析CSV文件 使用Matplotlib绘图

数据存储在CSV文件中&#xff0c;使用Matplotlib实现数据可视化。 CSV文件&#xff1a;comma-separated values&#xff0c;是在文件中存储一系列以‘&#xff0c;’分隔的值。 例如&#xff1a;"0.0","2016-01-03","1","3","20…

电子电工基础-二极管

二极管&#xff1a;单向导电性 工作区域&#xff1a;截止区、放大区、饱和区、反向击穿区 相关计算题 注意点&#xff1a;正向压降为0.7V&#xff0c;但是电流小&#xff0c;可以设为0.6V 在对其进行静态分析 可以得出静态直流的电流大小Id 根据二极管电流为26ma的特性&…

力扣刷题Days23-35.搜索插入的位置(js)

1&#xff0c;题目 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 2&#xff0c;代码 /*** param {number[]} nums*…

Vue+SpringBoot打造智慧家政系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服务4.2 新增单条服务订单4.3 新增留言反馈4.4 小程序登录4.5 小程序数据展示 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的智慧家政系统&#xff0…

鸿蒙 Launcher与android Launcher的开发区别

鸿蒙&#xff08;HarmonyOS&#xff09;Launcher与Android Launcher在某些方面相似&#xff0c;但也存在一些明显的区别。尽管鸿蒙Launcher和Android Launcher都是用于用户与设备交互的界面&#xff0c;但由于底层架构、生态系统、开发语言和工具等方面的差异&#xff0c;它们在…

2024年亚洲图像处理趋势会议(ATIP 2024)即将召开!

2024年亚洲图像处理趋势会议&#xff08;简称&#xff1a;ATIP 2024&#xff09;将于2024年6月21日至23日在英国伦敦举行。在会议上我们将与相关领域的研究人员和知名专业人士共同讨论关于图像处理学科的最新研究方向及进展&#xff0c;评估当前最先进的技术和未来研究的关键领…

使用el-cascader组件写下拉级联多选并且具有全选功能

样式 说明&#xff1a; 级联选择器中加上全选的按钮&#xff0c; 并且保证数据响应式。 思路 因为是有全选的功能&#xff0c;所以不能直接使用el-cascader组件&#xff0c; 而是选择使用el-select组件&#xff0c; 在此组件内部使用el-cascader-panel级联面板全选按钮也是…

Win11配置WSL(Ubuntu)环境

一&#xff0c;什么是WSL WSL:Windows Subsystem for Linux&#xff0c;是用于Windows系统之上的Linux子系统。作用很简单&#xff0c;可以在Windows系统中获得Linux系统环境&#xff0c;并完全直连计算机硬件&#xff0c;无需通过虚拟机虚拟硬件 简而言之: Windows10的WSL功能…

【Android】图解View事件分发机制

文章目录 View事件分发机制dispartchTouchEvent()dispatchTouchEvent() 方法主要负责什么&#xff1f; onTouchEvent(event) 点击事件分发的传递规则自上而下自下而上 View事件分发机制 View的事件分发机制是Android中非常核心的一个概念&#xff0c;它负责处理触摸事件&#…

Request failed with status code 504,Gateway time out

问题描述&#xff1a; 部署在测试环境的项目在执行某功能时&#xff0c;后台程序在执行过程中&#xff0c;前端控制台在一分钟左右会报出Request failed with status code 504&#xff0c;Gateway time out异常。但是在本地开发环境会正常运行&#xff0c;并不会报出异常。 问题…

LeetCode 678:有效的括号字符串 ← 贪心算法

【题目来源】https://leetcode.cn/problems/valid-parenthesis-string/description/【题目描述】 给你一个只包含三种字符的字符串&#xff0c;支持的字符类型分别是 (、) 和 *。请你检验这个字符串是否为有效字符串&#xff0c;如果是有效字符串返回 true 。 有效字符串符合如…

【黄金手指】windows操作系统环境下使用jar命令行解压和打包Springboot项目jar包

一、背景 项目中利用maven将Springboot项目打包成生产环境jar包。名为 prod_2024_1.jar。 需求是 修改配置文件中的某些参数值&#xff0c;并重新发布。 二、解压 jar -xvf .\prod_2024_1.jar释义&#xff1a; 这段命令是用于解压缩名为"prod_2024_1.jar"的Java归…