实例操作教你爬取京东的商品数据|实现大批量数据采集API接口

2024-03-05 11:52

本文主要是介绍实例操作教你爬取京东的商品数据|实现大批量数据采集API接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据采集API接口可以实现搜索及商品详情数据的大批量稳定采集

提出问题

如何在京东商城爬取出各个商品的相关信息(价格、名称、评价、店铺名等等),比如,打开web京东网站,在搜索框输入关键字:口红。那么商品展示列表的所有商品的信息,怎么爬下来,怎么保存到表格中?

我们来看看怎么实现这个功能。

图片

解决思路

1、打开网站,输入关键字,点击搜索按钮;

2、将右侧下拉框拉到最下面,保证获取到全部的数据;

3、将每一个商品进行遍历,把每个item中的价格、名称、店铺、评价数量全部获取到;

4、将获取的信息,装在表格中。

图片

import timeimport pandas as pdfrom selenium import webdriverimport requestsfrom selenium.webdriver import Keysfrom selenium.webdriver.common.by import By
if __name__ == '__main__':    search_word = input("请输入你要搜索的商品:")    page_size = int(input("请输入你要爬取的页数:"))    prices, names, commits, shops = [], [], [], []    # 打开浏览器    driver = webdriver.Chrome()    driver.get("https://www.jd.com")    time.sleep(1)    # 将web网页窗口最大化    driver.maximize_window()    # 找到搜索框    input_box = driver.find_element(By.ID, "key")    # 将搜索的字输入到京东搜索框中    input_box.send_keys(search_word)    # 按下enter键    input_box.send_keys(Keys.ENTER)
    # range(page_size)    for i in range(page_size):        # 将下拉框拖到最下面:        driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')        time.sleep(3)  # 确保在向下拖动的过程中,数据全部加载出来,加几秒等待
        # 获取所有的li        good_lists = driver.find_elements(By.XPATH, '//*[@id="J_goodsList"]/ul/li')
        for item in good_lists:            # 找到产品的价格            price = item.find_element(By.CLASS_NAME, "p-price").text            # 找到商品的名字            name = item.find_element(By.CLASS_NAME, "p-name").text            # 找到商品的评论            commit = item.find_element(By.CLASS_NAME, "p-commit").text            # 找到商品的店铺            shop = item.find_element(By.CLASS_NAME, "p-shop").text            # 将每一次爬到的数据信息,追加到列表[ ]中            prices.append(price)            names.append(name)            commits.append(commit)            shops.append(shop)
        # 点击下一页        driver.find_element(By.CLASS_NAME, "pn-next").click()
    df = pd.DataFrame({        "价格": prices,        "名称": names,        "评论": commits,        "商家": shops    })
    # 将数据保存到excel表格中    df.to_excel("{}.xlsx".format(search_word))

(左右滑动查看完整代码)

图片

以上就是一个比较基础的爬虫Demo,通过selenium来实现,爬取的数据的业务逻辑较为简单,最后生成放在表格中就可以了。

这篇关于实例操作教你爬取京东的商品数据|实现大批量数据采集API接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776424

相关文章

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串