当前位置: 首页 > news >正文

selenium爬取图书信息

一.爬取某网页某类书的全部信息(书名,作者,价格,简介)

1.导入相关的库时间库selenium库等

import time
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By

2.先定义一个函数方便我们后面使用函数来将网页上的内容写入文件中

def get_info(driver):global page_numtime.sleep(5)eles = driver.find_elements(by=By.CLASS_NAME,value='book_item')for element in eles:element.click()handers = driver.window_handlesdriver.switch_to.window(handers[-1])time.sleep(5)book_name = driver.find_element(by=By.CLASS_NAME,value='book-name').textbook_auther = driver.find_element(by=By.CLASS_NAME,value='book-author').textbook_summary =driver.find_element(by=By.CLASS_NAME,value='book-summary').textbook_price =driver.find_element(by=By.CLASS_NAME,value='price').textfile.write("书名: "+book_name+'\n'+'作者: '+book_auther+'\n'+'书本简介: '+book_summary+'\n'+'价格: '+book_price+'\n'+"========================================"+'\n')driver.close()handers = driver.window_handlesdriver.switch_to.window(handers[-1])page_num += 1

handers = driver.window_handles   查询当前网页全部标签页以列表形式返回
driver.switch_to.window(handers[-1])  将driver对象定位到最后一个标签页

3.先用创建写的方式打开一个文件,再进行一些浏览器的绑定操作,最后打开我们需要打开的网址

file = open("ppt图书信息.txt",'w')
edge_options = Options()
# edge_options.add_argument('--headless')
edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
driver = webdriver.Edge(options=edge_options)
driver.get("网站地址")

4.根据浏览器的检查元素功能找到搜索框对应的信息通过find_element()方法找到元素并输入信息回车

还需将driver定位到最后的标签页

driver.find_element(by=   ,value='   ').send_keys("ppt"+Keys.RETURN)
handers = driver.window_handles
time.sleep(3)
driver.switch_to.window(handers[-1])

5.根据浏览器的检查元素功能找到”更多“这个元素对应的信息通过find_element()方法找到元素并点击

最后通过get_info()方法获取图书的全部信息并写入文件

并设置初始页数为0,在方法内会在读取后将页数加1

driver.find_element(by=   ,value='   ').click()
handers = driver.window_handles
driver.switch_to.window(handers[-1])
page_num=0
get_info(driver)

6,在上数步骤读完第一页后继续通过循环继续往后读取后面网页数的图书信息,可以自己观察当前所需要读取的总共页数来控制循环的读取

我们在读取完一页后还需找到网页中的下一页并点击

while True:if page_num==13:breakdriver.find_element(by=By.CLASS_NAME,value='ivu-page-next').click()get_info(driver)
file.close()
http://www.xdnf.cn/news/1163719.html

相关文章:

  • 旋转目标检测(Rotated Object Detection)技术概述
  • Selenium 处理表单、弹窗与文件上传:从基础到实战
  • ACE 插入元件
  • cs336 Lecture2
  • 使用Langchain调用模型上下文协议 (MCP)服务
  • AI革命带来的便利
  • Go语言进阶书籍:Go语言高级编程(第2版)
  • 14.7 Alpaca格式深度解析:3倍指令准确率提升的LLM微调秘诀
  • Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法
  • Linux | C Shell 与 Bash 的差异 / 环境变量配置问题解析
  • 了解 ReAct 框架:语言模型中推理与行动的协同
  • vscode 使用说明二
  • vscode创建vue项目报错
  • 5.6 framebuffer驱动
  • 人工智能之数学基础:事件间的关系
  • MySQL 核心知识点梳理(3)
  • Qualcomm Linux 蓝牙指南学习--验证 Fluoride 协议栈的功能(2)
  • Java学习----NIO模型
  • 爬虫实战指南:从定位数据到解析请求的全流程解析
  • PyTorch 实现 CIFAR-10 图像分类:从数据预处理到模型训练与评估
  • 【PHP安全】免费解密支持:zend52、zend53、zend54好工具
  • C# 结构体
  • AI Agent与MCP协议构建标准技术报告(2025Q3)
  • 【科研绘图系列】R语言绘制棒棒图和哑铃图
  • PyQt5—QInputDialog 学习笔记
  • MySQL 8.0 OCP 1Z0-908 题目解析(31)
  • Python并发编程:突破GIL枷锁,高效利用多核CPU
  • Vue组件之间通信
  • ps aux 和 ps -ef
  • react class和function 如何模拟vue中的 双向绑定 监听 computed的方式