Python大数据实践:selenium爬取京东评论数据

准备工作

selenium安装

Selenium是广泛使用的模拟浏览器运行的库,用于Web应用程序测试。 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,并且支持大多数现代 Web 浏览器。

#终端pip安装
pip install selenium
#清华镜像安装
pip install selenium -i https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/

安装Chrome driver

查看Google版本,并下载对应版本的驱动

下载路径

安装在anaconda的Scripts文件夹中

测试

from selenium import webdriver
# 初始化WebDriver
browser = webdriver.Chrome()

如果弹出Chrome浏览器,则说明安装成功 

 

爬虫

示例:爬取【AppleiPhone 13】Apple/苹果 iPhone 13 (A2634)128GB 绿色 支持移动联通电信5G 双卡双待手机【行情 报价 价格 评测】-京东

先导入所用的包,这样一步一步跟着做不会出错

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
from bs4 import BeautifulSoup
import time

 初始化并访问

# 初始化WebDriver
browser = webdriver.Chrome()
# 访问商品页面
browser.get('https://item.jd.com/100034710036.html')
# 等待页面加载完成
time.sleep(5)

登录 

QQ、微信登录或扫码登陆均可

正常登录后的界面如下

 控制点击商品评价按钮

# 点击“商品评价”按钮
try:
    # 等待“商品评价”按钮可点击
    WebDriverWait(browser, 10).until(
        EC.element_to_be_clickable((By.XPATH, '//*[@id="detail"]/div[1]/ul/li[5]'))
    ).click()
except Exception as e:
    print(f"Error clicking the '商品评价' button: {e}")
    browser.quit()
    exit()

正则表达式要通过F12检查页面源码去看!!!

爬取评论数据

# 设置要爬取的页数
num_pages_to_scrape = 5

# 循环爬取多页评论
for page_num in range(1, num_pages_to_scrape + 1):
    print(f"Scraping page {page_num}...")

    # 等待评论加载完成
    try:
        WebDriverWait(browser, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '.comment-item .comment-con'))
        )
    except Exception as e:
        print(f"Error waiting for comments to load on page {page_num}: {e}")
        break

    # 获取页面源码
    html = browser.page_source

    # 使用BeautifulSoup解析HTML
    soup = BeautifulSoup(html, 'html.parser')

    # 提取评论数据
    comments = soup.select('.comment-item .comment-con')

    # 检查是否有评论
    if comments:
        for comment in comments:
            # 提取评论内容
            content = comment.get_text(separator='\n')
            print(content)
    else:
        print("No comments found on page {page_num}.")

检查是否有下一页(不是必要操作) 

因为测试时报错找不到下一页,因此添加检查是否有下一页的操作。如果上述操作没有错误,就可以不加。

# 检查是否还有下一页
    if page_num < num_pages_to_scrape:
        # 点击“下一页”按钮
        try:
            # 等待“下一页”按钮可点击
            next_page_button = WebDriverWait(browser, 10).until(
                EC.element_to_be_clickable((By.CLASS_NAME, 'ui-pager-next'))
            )
            # 点击下一页按钮
            next_page_button.click()
            # 等待Ajax请求完成
            WebDriverWait(browser, 10).until(
                EC.invisibility_of_element_located((By.CLASS_NAME, 'loading-indicator'))
            )
        except Exception as e:
            print(f"Error clicking the '下一页' button or waiting for Ajax request on page {page_num}: {e}")
            break

结果

爬取结果如下,每爬一页都会显示是第几页

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 好的,以下是使用PythonSelenium爬取京东的步骤: 1. 安装PythonSelenium库。 2. 下载Chrome浏览器和对应版本的ChromeDriver。 3. 编写Python代码,使用Selenium打开Chrome浏览器,并访问京东网站。 4. 使用Selenium模拟用户操作,比如输入搜索关键词、点击搜索按钮等。 5. 使用Selenium获取搜索结果页面的HTML代码,并解析出需要的信息,比如商品名称、价格、评价等。 6. 将获取到的信息保存到本地文件或数据库中。 7. 可以使用循环和分页技术,爬取多页的搜索结果。 以上就是使用PythonSelenium爬取京东的基本步骤,具体实现可以参考相关教程和代码示例。 ### 回答2: Python是一种非常强大的编程语言,而Selenium是一个流行的自动化测试工具。我们可以使用这两个工具来爬取京东。下面是如何使用PythonSelenium爬取京东的步骤: 首先,你需要安装PythonSelenium库。在安装完成后,可以找到关于Selenium的基本信息、功能和API文档。 接下来,打开京东网站,找到输入关键词的搜索框。使用Selenium的find_element_by_name方法,通过名称找到搜索框并输入关键词。 接着,点击搜索按钮。同样使用Selenium的find_element_by_css_selector方法,通过CSS选择器找到搜索按钮,并使用click()方法进行点击。 然后,你需要解析搜索结果页面中的信息。使用Selenium获取搜索结果页面中的所有商品块,通过块中的css选择器和Selenium的find_element_by_css_selector方法获取商品的标题、价格和图片等信息。 最后,将这些信息保存到您的本地文件中或者输出到控制台上。 需要注意的是,京东会经常更新他们的网站,可能会导致爬虫无法正常工作。因此,你需要在你的代码中添加错误和异常处理机制,以便在出现错误时能够更好的处理。 总而言之,使用PythonSelenium爬取京东是一种相对简单而且高效的方法。这个过程需要一定的编程知识,但一旦了解了这种方法,你可以更方便地获取你需要的数据。 ### 回答3: Python是一种常用的编程语言,可以完成各种领域的编程任务。而Selenium则是一种自动化测试工具,可以实现模拟用户操作,对网页进行自动化测试。 京东是一个电商网站,其中包含了众多商品信息,包括名称、价格、评论等。使用PythonSelenium库,可以实现对京东商品信息的自动化爬取。 实现步骤如下: 1.安装Selenium库 首先需要安装Selenium库,可以在命令行中使用以下命令进行安装: ``` pip install selenium``` 2.下载Chromedriver Selenium需要一个浏览器驱动程序,可以在Selenium官网中下载Chromedriver。 3.编写爬虫代码 导入selenium库并声明driver,使用get方法打开网页。使用find_element_by_id方法获取搜索框,输入关键字并使用submit方法进行搜索。 接着,使用find_elements_by_css_selector方法获取商品列表中的每个商品元素,遍历每个商品元素并获取商品信息。例如,获取商品名称可以使用find_element_by_css_selector方法获取名称元素,并使用text属性获取文本内容。 将获取的商品信息存储到一个列表中。如果搜索结果有多页,可以通过判断下一页按钮是否可点击来进行翻页操作。 最后,将结果写入文件或数据库中。 4.反爬虫处理 对于一些反爬虫措施,例如验证码和IP封锁,我们需要使用一些反反爬虫技术来绕过限制。 例如,使用IP代理来实现IP切换,或使用验证码识别算法来自动化识别验证码。 在使用爬虫时,需要注意遵守相关法律法规和网站规定,不要进行非法采集和滥用数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值