爬取简书1
import osfrom selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.edge.service import Service
import timeimport pandas as pdfrom selenium.webdriver.common.action_chains import ActionChainsdef get_aws():# 如果 WebDriver 的路径没有被添加到系统的 PATH 环境变量中,需要指定它的路径edge_driver_path = 'E:/sleep_lr/edgedriver_win64/msedgedriver.exe'service = Service(edge_driver_path)# # 创建 Edge 浏览器实例driver = webdriver.Edge(service=service)if not os.path.exists("cookies.pkl"):driver.get("https://www.jianshu.com/")input("ok")pd.to_pickle(driver.get_cookies(), "cookies.pkl")else:driver.get("https://www.jianshu.com/")driver.delete_all_cookies()for cookie in pd.read_pickle("cookies.pkl"):driver.add_cookie(cookie_dict=cookie)## 打开一个网页data=pd.read_pickle("jian_fen.pkl")text_list=[]for name, strs, like, url, one_str_price, get_like_str in data.values:driver.get(url)info=driver.find_elements(By.XPATH,'//div[@class="info"]/ul')[0].textactions = ActionChains(driver)# 先悬浮再点击actions.move_to_element(driver.find_elements(By.XPATH, '//i[@class="iconfont ic-hot"]')[0]).click().perform()time.sleep(5)one=[o.text for o in driver.find_elements(By.XPATH,'//ul[@class="note-list"]/li')]text_list.append([info,one])print(one)pd.to_pickle(text_list, "jian_shu1.pkl")if __name__ == '__main__':get_aws()
这段代码是一个使用 Python 语言编写的脚本,它使用了 Selenium 库来自动化操作网页浏览器,特别是 Microsoft Edge 浏览器。以下是代码的主要功能和步骤的解释:
- 引入所需的库:
os
:用于与操作系统交互,例如检查文件是否存在。selenium.webdriver.common.by.By
:用于定位网页元素。selenium.webdriver
:包含WebDriver的接口。selenium.webdriver.edge.service.Service
:用于启动Edge浏览器服务。time
:用于暂停脚本执行,以便等待网页加载或操作完成。pandas as pd
:用于数据处理和分析,这里主要用于序列化(保存)和反序列化(加载)cookie。selenium.webdriver.common.action_chains.ActionChains
:用于模拟更复杂的用户操作,如鼠标悬停和点击。
- 定义
get_aws
函数:- 这个函数负责启动浏览器、管理cookies、访问简书网站,并抓取特定文章的热门评论。
- 设置 Edge WebDriver:
- 定义
edge_driver_path
变量为 Edge WebDriver 的可执行文件路径。 - 创建一个
Service
对象,将 WebDriver 的路径传递给它。 - 创建一个
webdriver.Edge
实例,用于控制浏览器。
- 定义
- 管理 Cookies:
- 检查是否存在一个名为 “cookies.pkl” 的文件。如果不存在,则访问简书网站,并在用户登录后手动保存 cookies(通过
input("ok")
暂停执行)。 - 如果 “cookies.pkl” 文件存在,则加载 cookies,以便在浏览器中保持登录状态。
- 检查是否存在一个名为 “cookies.pkl” 的文件。如果不存在,则访问简书网站,并在用户登录后手动保存 cookies(通过
- 访问简书文章页面并抓取数据:
- 从 “jian_fen.pkl” 文件中读取包含文章信息的 DataFrame。
- 遍历 DataFrame 中的每一行,获取文章的 URL,并访问这些 URL。
- 在每个文章页面上,抓取文章信息(如阅读量、评论数等)和热门评论。
- 执行鼠标悬停和点击操作:
- 使用
ActionChains
对象模拟用户将鼠标悬停在热门评论图标上,并点击它以展开评论列表。
- 使用
- 等待并抓取评论:
- 等待5秒钟以允许评论加载。
- 抓取评论列表中的文本。
- 将抓取的信息保存到
text_list
中,并将这个列表序列化到 “jian_shu1.pkl” 文件中。
- 主程序入口:
- 当该脚本作为主程序运行时,调用
get_aws()
函数。
请注意,代码中有几个地方需要手动干预(例如,登录简书网站并保存 cookies),并且它依赖于外部文件(“cookies.pkl” 和 “jian_fen.pkl”)的存在。
此外,该脚本可能存在一些问题,例如缺少异常处理,以及硬编码的等待时间(time.sleep(5)
),这可能会导致脚本不稳定或效率低下。在使用此脚本之前,需要确保所有外部依赖项都正确设置,并且脚本在运行环境中经过充分测试。
- 当该脚本作为主程序运行时,调用
相关文章:
爬取简书1
import osfrom selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.edge.service import Service import timeimport pandas as pdfrom selenium.webdriver.common.action_chains import ActionChainsdef get_aws():# 如果 WebDr…...
基于STM32单片机设计的矿山环境作业安全监测系统
文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】需求总结1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 模块的技术详情介绍【1】BC26-NBIOT模块【2】DHT11温湿度模块【3】PM2.5粉尘模块二…...

大数据linux操作系统
第一关:Linux的初体验 答案: cd / ls -a / (里面有空格要注意) 第二关:Linux的常用命令 答案: touch newfile mkdir newdir cp newfile newdir/newfileCpy 第三关:Linux查询命令帮助语句…...

MySQL 【日期】函数大全(七)
目录 1、UNIX_TIMESTAMP() 将指定的日期/日期时间转为 UNIX 时间戳值。 2、WEEK() 返回给定日期位于当年的第几周。 3、WEEKDAY() 返回给定日期的工作日编号。 4、WEEKOFYEAR() 返回给定日期位于当年的第几周 5、YEAR() 提取日期的年份部分并作为数字返回。 6、YEARWEEK()…...

IP报文格式、IPv6概述
IPv4报文格式 IPv4报文首部长度至少为20字节(没有可选字段和填充的情况下),下面来逐一介绍首部各个字段的含义 Version版本:表示采用哪一种具体的IP协议,对于IPv4来说该字段就填充4以表示,如果是IPv6就填充6IHL首部长度ÿ…...
学习记录:js算法(六十七):任务调度器
文章目录 任务调度器思路一思路二 任务调度器 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:两个…...

5分钟8图:Cursor如何让编程效率提升5倍?
5分钟8图,看Cursor如何革新AI编程? 作为一名AI编程的实践者,我很高兴为大家介绍Cursor - 一款基于VSCode的创新型集成开发环境(IDE),它巧妙地融合了先进的AI技术,为编程工作带来前所未有的便利。让我们通过多个图表深入了解Cursor的特性和工作流程。 Cursor的核心…...

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导
FOTA模块中OTA的知识点:1.测试过程中发现哪几类问题? 可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。 2.在做ota测试的过程中ÿ…...

PACT 在微服务架构中的用途
在微服务架构盛行的今天,如何确保各个微服务之间的交互正确且稳定成为了一个关键问题。PACT(一种契约测试工具)在这个领域发挥着重要的作用。那么,PACT 在微服务架构中的用途到底是什么呢? 一、微服务架构的挑战 微服…...

LeetCode 3200.三角形的最大高度:枚举
【LetMeFly】3200.三角形的最大高度:枚举 力扣题目链接:https://leetcode.cn/problems/maximum-height-of-a-triangle/ 给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行…...

ssm基于java的招聘系统设计与开发+vue
系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 1 第2章 开发环境与技术 3 2.1 Java语言…...

【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!
💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 前几篇文章中我们深入研究了TCP协议,因为TCP协议在我们日常开发中的使用频率非常高。而相比之下,IP协议与我们普通程序员关系就没那么近了。一般是专门开发…...
三次握手与四次挥手
一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ack,B收到。 A : 知道B可以收也可以发 , B知道A…...
awk命令学习记录
awk命令 awk命令 表示将一行数据按特定分割符分割成多列,而从而选取特定列数的数据,默认分割符为空格,连接符默认也是空格 // 1. 更换分割符 awk -F : 1.txt // 1.txt为你的文件名 // 2. 打印多列 awk {print $1,$2} // $0为整行ÿ…...
科大讯飞嵌入式面试题及参考答案
平衡二叉树和普通二叉树的区别 平衡二叉树是一种特殊的二叉树,与普通二叉树相比有以下显著区别: 一、定义与结构 普通二叉树:二叉树是每个节点最多有两个子树的树结构。它没有特定的平衡要求,节点的分布可能比较随机。例如&#x…...
C Lua5.4.6 SDK开发库
下载 .lua执行 #include "lua.h" #include "lualib.h" #include "lauxlib.h"static int luaopen_ui(lua_State *L) {static const struct luaL_Reg lib_f[] = {{"saveFile", saveFile},{"loadFile", loadFile},{NULL, NULL…...
无线网卡知识的学习-- wireless基础知识(cfg80211)
1. 基本概念 mac80211 :这是最底层的模块,与hardware offloading 关联最多。 mac80211 的工作是给出硬件的所有功能与硬件进行交互。(Kernel态) cfg80211:是设备和用户之间的桥梁,cfg80211的工作则是观察跟踪wlan设备的实际状态. (Kernel态) nl80211: 介于用户空间与内核…...
Next.js 学习 - 路由系统(Routing)
Next.js 的路由系统基于文件系统,这意味着文件和文件夹的结构决定了 URL 路径。相较于传统的 React 应用中的路由配置,Next.js 的文件路由系统非常简洁和自动化。下面是对 Next.js 路由的详细介绍。 1. 目录结构 在 Next.js 13 中,app 目录…...

Unity XR PICO 手势交互 Demo APK
效果展示 用手抓取物体,调整物体位置和大小等 亲测pico4 企业版可用, 其他设备待测试 下载链接: 我标记的不收费 https://download.csdn.net/download/qq_35030499/89879333...

EM算法学习
1.EM算法的介绍 可以发现:计算出θA和θB的值的前提是知道A、B币种的抛掷情况。 所以我们需要使用EM算法:求出每轮选择硬币种类的概率 2.EM算法执行过程: 第一步:首先初始化设置一组PA和PB证明的值。然后通过最大似然估计得到每…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...