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

selenium爬虫爬取当当网书籍信息 | 最新!

如果对selenium不了解的话可以到下面的链接中看基础内容:

selenium爬取有道翻译-CSDN博客

废话不多说了下面是代码并且带有详细的注释:

爬取其他类型的书籍和下面基本上是类似的可以自行更改。

# 导入所需的库
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import csv# 创建一个Chrome浏览器实例,并设置为无头模式(不显示界面)
options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)# 访问当当网首页
driver.get('https://www.dangdang.com/')# 在搜索框中输入关键词"科幻"
key = driver.find_element(By.ID, "key_S")
key.send_keys("科幻")# 点击搜索按钮
element = driver.find_element(By.ID, "search_btn")
driver.execute_script("arguments[0].click();", element)# 创建CSV文件并写入表头
with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile:writer = csv.writer(csvfile)writer.writerow(['标题', '价格'])# 循环爬取前3页的书籍信息
for i in range(3):# 获取当前页面的所有书籍列表shoplist = driver.find_elements(By.CSS_SELECTOR, ".shoplist li")# 遍历每本书的信息for li in shoplist:# 获取书名title = li.find_element(By.CSS_SELECTOR, "a").get_attribute("title")# 获取价格price = li.find_element(By.CSS_SELECTOR, ".search_now_price").text# 将获取到的数据添加到CSV文件中with open('output.csv', 'a', newline='', encoding='utf-8') as csvfile:writer = csv.writer(csvfile)writer.writerow([title, price])# 获取下一页的链接并点击next = driver.find_element(By.LINK_TEXT, "下一页")next.click()# 等待页面加载完成time.sleep(2)# 当用户输入1时,退出浏览器
if input('1'):driver.quit()

下面是运行效果

代码是最新的,在这一段时间内一定是可以运行的

如果有啥问题可以问我看到一定会回复大家,如果大家喜欢可以作者点赞和关注

大家的支持是我创作下去的最大动力!

 

http://www.lryc.cn/news/284059.html

相关文章:

  • PTA 7-1 最大子列和问题
  • JAVA实现向Word模板中插入Base64图片和数据信息
  • 深入浅出关于go web的请求路由
  • HarmonyOS—开发环境诊断的功能
  • Golang个人web框架开发-学习流程
  • java面试题(23):Spring Bean如何保证并发安全
  • HarmonyOS【应用服务开发】在模块中添加Ability
  • 根据屏幕尺寸设置html根字号fontSize大小并刷新
  • Flutter 中的 InteractiveViewer:轻松实现交互性
  • UE4 添加按键输入事件 并在蓝图中使用按键输入节点
  • Go 语言命名规范:清晰、简洁、一致
  • 代码随想录训练营第三十期|第十天|栈与队列part01|理论基础● 232.用栈实现队列● 225. 用队列实现栈
  • Backtrader 文档学习-Indicators混合时间框架
  • 网络攻击与检测防御:维护数字安全的关键挑战
  • 使用 Vector 在 Kubernetes 中收集日志
  • ardupilot开发 --- 固件定制(OEM) 篇
  • 爬虫代理IP在电商行业的应用
  • Vue配置语法检查及关闭语法检查的说明
  • 【Linux】yum
  • 安装sftpgo
  • JS-元素尺寸与位置
  • 2024-01-15(SpringMVCMybatis)
  • Node+Express编写接口---前端
  • 防火墙技术
  • 图灵日记之java奇妙历险记--String类
  • 代码随想录算法训练营第六天| 242 有效的字母异位词 349 两个数组的交集 202 快乐数 1 两数之和
  • 数学建模--比赛
  • JVM工作原理与实战(十六):运行时数据区-Java虚拟机栈
  • DC-4靶机刷题记录
  • 【前端学习笔记1】css基础