Python爬虫 使用Selenium爬取京东第一页商品的差评

使用Python中的Selenium库爬取京东口罩第一页的差评

实验目的

使用Python中的Selenium库爬取京东口罩第一页的差评,以商品名称保存为txt文件

Selenium库

需要使用Selenium库,如无这个库的话请使用pip命令自行安装

pip install selenium

谷歌浏览器驱动

还需要用到谷歌浏览器驱动,请自行下载对应版本驱动后填入下方代码需要处

http://npm.taobao.org/mirrors/chromedriver/

参考代码

from selenium import  webdriver
import  time
import csv
import re
from selenium.webdriver.support.wait import WebDriverWait
goodslinks=[]
def get_goodslink():
	#填入自己的浏览器驱动位置
    wd=webdriver.Chrome("")
    #打开京东口罩搜索页面
    wd.get("https://search.jd.com/Search?keyword=口罩") 
    time.sleep(4)
    #商品链接获取
    links=wd.find_elements_by_css_selector(".gl-item .gl-i-wrap .p-img a")
    for link in links:
        href=link.get_attribute('href')
        goodslinks.append(href)
    wd.close()
    

def get_goodscomments(urls):
	#填入你的浏览器驱动位置
    wd=webdriver.Chrome("")
    for url in urls:
        wd.get(url)
        time.sleep(3)
        #获取商品名称
        goodsName=wd.find_element_by_css_selector(".itemInfo-wrap .sku-name").text 
        #去除商品名的非法字符
        rightName=re.sub(r"[\/\\\:\*\?\"\<\>\|]", "_", goodsName)  
        # 控制鼠标从上往下滑动到底部
        wd.execute_script("window.scrollTo(0,document.body.scrollHeight);") 
        time.sleep(3)
        #设置显式等待,点击差评按钮
        WebDriverWait(wd,3,0.2).until(lambda x:x.find_element_by_css_selector("#comment ul li:nth-child(7) a")).click()
        time.sleep(3)
        #获取差评
        goodsComment=wd.find_elements_by_xpath('//div[@class = "tab-con"]/div[@id = "comment-6"]//p')
        #写入文件名
        with open("E:\\python文件\\badcomments\\"+ rightName +'.txt','a+', encoding='utf-8-sig') as f: 
                                #badcomments为文件夹名字
            for comment in goodsComment:
                f.writelines(comment.text +'\n')
    wd.close()
        

            
if __name__=="__main__":
    get_goodslink()
    get_goodscomments(goodslinks)

最开始让程序自行爬取商品名称创建txt文件时报错,搜索之后发现创建文件不能有非法字符,此时需要用re.sub()处理非法字符

rightName=re.sub(r"[\/\\\:\*\?\"\<\>\|]", "_", goodsName)

实验结果

在这里插入图片描述

ShiYu Liu

写在最后

博主仅为python新手,本篇博文仅供交流分享,如有不足之处欢迎各位大佬指点!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,下面是使用Selenium爬取京东Python图书第一本书的信息的步骤: 1. 安装Selenium库和Chrome浏览器驱动。 2. 导入Selenium库和时间库: ```python from selenium import webdriver import time ``` 3. 创建浏览器对象并访问京东网站: ```python driver = webdriver.Chrome() driver.get('https://www.jd.com/') ``` 4. 找到搜索框并输入关键词“Python”。 ```python search_box = driver.find_element_by_id('key') search_box.send_keys('Python') ``` 5. 找到搜索按钮并点击。 ```python search_button = driver.find_element_by_class_name('button') search_button.click() ``` 6. 等待页面加载完成。 ```python time.sleep(5) ``` 7. 找到图书分类并点击。 ```python book_category = driver.find_element_by_xpath('//*[@id="J_cate"]/ul/li[1]/a') book_category.click() ``` 8. 等待页面加载完成。 ```python time.sleep(5) ``` 9. 找到第一本书的标题、价格和链接。 ```python book_title = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[3]/a/em') book_price = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[2]/strong/i') book_link = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[1]/a') ``` 10. 打印书籍信息。 ```python print('书名:', book_title.text) print('价格:', book_price.text) print('链接:', book_link.get_attribute('href')) ``` 11. 关闭浏览器。 ```python driver.quit() ``` 完整代码如下: ```python from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.jd.com/') search_box = driver.find_element_by_id('key') search_box.send_keys('Python') search_button = driver.find_element_by_class_name('button') search_button.click() time.sleep(5) book_category = driver.find_element_by_xpath('//*[@id="J_cate"]/ul/li[1]/a') book_category.click() time.sleep(5) book_title = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[3]/a/em') book_price = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[2]/strong/i') book_link = driver.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[1]/a') print('书名:', book_title.text) print('价格:', book_price.text) print('链接:', book_link.get_attribute('href')) driver.quit() ``` 运行之后就可以爬取京东Python图书第一本书的信息了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值