使用Python的自动化工具Selenium爬取京东商品评论

课程作业要求,遂学习了python的自动化selenium工具,并爬取京东商品评论数据练练手。

目录:

一、环境

二、第三方库

三、分析

1.1 chrome驱动

1.2 定位评论元素

1.3 循环爬取评论数据并保存为CVS文件导出

其中xpath对应网页元素

         评论:

         用户名:

四、代码

五、结果


 


一、环境

我使用的是windows+python3.6+pycharm,大家自己去下载对应的环境。

二、第三方库

from selenium import webdriver
from time import sleep
import csv

三、分析

1.1 chrome驱动

browser = webdriver.Chrome()#需要使用chrome的调用驱动chormedrive导入script目录

调用浏览器需要下载对应的chrome驱动到项目工程目录

我的目录是C:\Users\Administrator\PycharmProjects\python\venv\Scripts

需要注意的是chrome浏览器的版本号需要与对应驱动版本号对应,不然会报错。

使用Python的自动化工具Selenium爬取京东商品评论_第1张图片

使用Python的自动化工具Selenium爬取京东商品评论_第2张图片


1.2 定位评论元素

然后就是通过xpath定位网页评论元素

try:
    browser.get('https://item.jd.com/100002795959.html#none')   #控制浏览器跳转到这个网页
    button = browser.find_element_by_xpath("//li[@clstag='shangpin|keycount|product|shangpinpingjia_1']")   #获取商品评论按钮
    button.click()  #控制按钮进行点击
    sleep(10)   #等待网页加载,防止网页加载过慢

使用Python的自动化工具Selenium爬取京东商品评论_第3张图片


1.3 循环爬取评论数据并保存为CVS文件导出

 with open('comment_con.csv', 'w') as csvfile:   #新建并打开comment_con.csv文件
        writer = csv.writer(csvfile)
        writer.writerow(['user_name', 'comment'])   #写第一行
        for n in range(99): #进行99次循环
            m = n+1
            print(m)
            user = browser.find_elements_by_xpath("//div[@class='user-info']")  #获取用户名
            lis = browser.find_elements_by_xpath("//p[@class='comment-con']")   #获取评论
            for i in range(len(user)):
                writer.writerow([user[i].text, lis[i].text])
            button2 = browser.find_element_by_class_name("ui-pager-next")   #获取下一页按钮
            print(button2.text)
            sleep(1)
            print("第%d页" %m)
            button2.click()
            sleep(5)
finally:
    browser.close()

其中xpath对应网页元素

评论:

使用Python的自动化工具Selenium爬取京东商品评论_第4张图片

用户名:

使用Python的自动化工具Selenium爬取京东商品评论_第5张图片

 

四、代码

from selenium import webdriver
from time import sleep
import csv

browser = webdriver.Chrome()#需要使用chrome的调用驱动chormedrive导入script目录
try:
    browser.get('https://item.jd.com/100002795959.html#none')   #控制浏览器跳转到这个网页
    button = browser.find_element_by_xpath("//li[@clstag='shangpin|keycount|product|shangpinpingjia_1']")   #获取商品评论按钮
    button.click()  #控制按钮进行点击
    sleep(10)   #等待网页加载,防止网页加载过慢

    with open('comment_con.csv', 'w') as csvfile:   #新建并打开comment_con.csv文件
        writer = csv.writer(csvfile)
        writer.writerow(['user_name', 'comment'])   #写第一行
        for n in range(99): #进行99次循环
            m = n+1
            print(m)
            user = browser.find_elements_by_xpath("//div[@class='user-info']")  #获取用户名
            lis = browser.find_elements_by_xpath("//p[@class='comment-con']")   #获取评论
            for i in range(len(user)):
                writer.writerow([user[i].text, lis[i].text])
            button2 = browser.find_element_by_class_name("ui-pager-next")   #获取下一页按钮
            print(button2.text)
            sleep(1)
            print("第%d页" %m)
            button2.click()
            sleep(5)
finally:
    browser.close()
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

五、结果

使用Python的自动化工具Selenium爬取京东商品评论_第6张图片wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==


博客记录学习,传递知识,共同进步,希望对你有帮助。QAQ

你可能感兴趣的:(python爬虫)