selenium+python爬取京东评论最多的计算机配置信息

本文介绍了如何结合selenium和python来爬取京东网站上评论数量最多的计算机配置信息,通过自动化浏览器操作获取动态加载的数据,详细阐述了实现步骤和技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from selenium import webdriver
import time
import os
import json
from selenium.webdriver.common.action_chains import ActionChains

driver=webdriver.Chrome("/usr/local/bin/chromedriver")
#保存cookies到文件jd.cookies
def save_cookies(driver):
    projrct_path=os.path.dirname(os.getcwd())
    print("cwd="+os.getcwd())

    file_path=projrct_path+"/cookies/"

    if not os.path.exists(file_path):
        os.mkdir(file_path)
    #保存cookies到文件中,y以后再访问,读取文件
    cookies=driver.get_cookies()
    with open(file_path+"jd.cookies","w") as c:
        #这里必需使用dump方式写入文件,不然load的时候就会米粒问题 格式会不匹配
        json.dump(cookies,c)
    print(cookies)
#保存爬取到的京东的计算机的信息保存到thinkpadinfo.txt
def save_computer_message(diclist):
    projrct_path=os.path.dirname(os.getcwd())
    print("cwd="+os.getcwd())
    file_path=projrct_path+"/getMessage/"
    if not os.path.exists(file_path):
        os.mkdir(file_path)
    #保存cookies到文件中,y以后再访问,读取文件
    with open(file_path+"thinkpadinfo.txt","w",encoding='utf-8') as c:
        #这里必需使用dump方式写入文件,不然load的时候就会米粒问题 格式会不匹配
        json.dump(diclist,c,ensure_ascii=False)
    print(diclist)
  #判断是否登录成功
def assert_login():
    elem=driver.find_element_by_class_name("nickname")
    print(elem.text)
    if elem.text=="xuejunmei17":
        return True
    else:
        return False
 #登录并保存cookies
def login():
    driver.get("https://www.jd.com")
    #浏览器全屏
    driver.maximize_window()
    #设置固定的浏览器分辨率
    #driver.set_window_size(1920,1080)
    driver.find_element_by_class_name("link-login").click()
    driver.find_element_by_link_text("账户登录").click()
    driver.find_element_by_id("loginname").send_keys("13474470750")
    driver.find_element_by_id("nloginpwd").send_keys("xjm@123456")
    driver.find_element_by_id("loginsubmit").click()
    save_cookies(driver)
#携带cookies访问网站
def get_url_with_cookie():
    #首先获取项目路径,进而获得cookies文件的路径
    project_path=os.path.dirname(os.getcwd())
    file_path=project_p
### 使用 Selenium 和 ChromeDriver 爬取京东商品用户评论 为了实现爬取京东商品的用户评论,可以通过 Python 编程语言结合 Selenium 库以及 ChromeDriver 工具完成这一目标。以下是详细的说明和代码示例。 #### 1. 安装依赖库 在开始之前,需要安装必要的 Python 库 `selenium` 和下载对应的 ChromeDriver 文件[^2]。 可以使用以下命令安装所需的库: ```bash pip install selenium pandas ``` #### 2. 下载并配置 ChromeDriver 根据引用中的描述,可以从指定链接下载适用于当前系统的 ChromeDriver 版本。解压后将其路径设置到系统环境变量中,或者直接在代码中指定其位置。 #### 3. 初始化 WebDriver 并访问目标页面 初始化 Selenium 的 WebDriver 对象,并加载目标 URL 页面。这里以某个华为手机的商品详情页为例: ```python from selenium import webdriver import time import pandas as pd # 设置 ChromeDriver 路径 chromedriver_path = r'path_to_chromedriver.exe' options = webdriver.ChromeOptions() options.add_argument('--headless') # 可选:无头模式运行浏览器 driver = webdriver.Chrome(executable_path=chromedriver_path, options=options) url = 'https://item.jd.com/your_product_id.html' driver.get(url) time.sleep(5) # 等待页面加载完毕 ``` #### 4. 切换至评论区域 通常情况下,商品详情页会默认显示基本信息而非评论区内容。因此需手动切换到评论部分。这一步可能涉及点击按钮或跳转锚点的操作。 ```python try: comment_tab = driver.find_element_by_link_text('全部评价') comment_tab.click() # 点击进入评论列表 time.sleep(5) # 等待评论加载 except Exception as e: print(f"无法找到评论标签: {e}") ``` #### 5. 动态加载更多评论 由于许多电商平台采用分页机制展示大量数据,在此过程中可通过不断触发“查看更多”功能获取完整的评论集合。 ```python def load_more_comments(): while True: try: more_button = driver.find_element_by_class_name('ui-pager-next') # 查找下一页按钮 if not more_button.is_enabled(): # 如果不可用则停止循环 break more_button.click() time.sleep(3) # 延迟等待新内容渲染 except Exception as e: print(f"加载更多失败: {e}") break load_more_comments() ``` #### 6. 提取消费者反馈信息 利用 XPath 或 CSS Selectors 抽取出用户名及其对应留言字段的内容存储起来。 ```python users = [] comments = [] user_elements = driver.find_elements_by_css_selector('.comment-item .username') for user in user_elements[:2000]: # 获取前两千条评论 users.append(user.text.strip()) content_elements = driver.find_elements_by_css_selector('.comment-item .comment-content') for content in content_elements[:2000]: comments.append(content.text.strip()) dataframe = pd.DataFrame({'Username': users, 'Comment': comments}) print(dataframe.head()) # 输出前几条记录验证结果 ``` #### 7. 导出 CSV 文件 最后把收集的数据保存成标准格式文件以便后续分析处理。 ```python output_file = 'jd_reviews.csv' dataframe.to_csv(output_file, index=False, encoding='utf_8_sig') print(f"已成功导出至{output_file}!") ``` 以上即为整个流程概述及相应脚本片段演示[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值