用selenium 和chromedriver抓取京东手机P20的评论信息

import time
from selenium import webdriver
import csv
from lxml import etreeclass JDSpider:def __init__(self):self.base_url = 'https://www.jd.com'self.opt = webdriver.ChromeOptions()self.opt.set_headless()self.driver = webdriver.Chrome(options=self.opt)self.driver_comment = webdriver.Chrome(options=self.opt)self.key = '华为p20'# 列表下一页def click_button(self):if self.driver.page_source.find('pn-next disabled') == -1:self.driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[1]/a[9]/em').click()time.sleep(1)self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")time.sleep(1)res = self.driver.page_sourceself.parse_base_html(res)else:self.driver.quit()# 评论下一页def comment_next_click(self):if self.driver_comment.page_source.find('ui-pager-next') != -1:# 可能是这边网速的问题,这里老是提示无法点击self.driver_comment.find_element_by_class_name('ui-pager-next').click()time.sleep(1)res = self.driver.page_sourceself.parse_child_html(res)else:self.driver_comment.quit()# 读取商品列表页面def parse_base_html(self, res):par_res = etree.HTML(res)base_list = par_res.xpath('//*[@id="J_goodsList"]/ul/li/div')for base in base_list:goods_url = base.xpath('./div[@class="p-img"]/a/@href')[0]url = goods_url if "https:" in goods_url else 'https:' + goods_urlself.driver_comment.get(url)time.sleep(1)self.driver_comment.find_element_by_xpath('//*[@id="detail"]/div[1]/ul/li[5]').click()self.driver_comment.execute_script("window.scrollTo(0,document.body.scrollHeight)")time.sleep(2)goods_res = self.driver_comment.page_sourceself.parse_child_html(goods_res)print('开始解析商品评论')time.sleep(1)self.click_button()# 解析商品详情评论def parse_child_html(self, goods_res):parse_goods_res = etree.HTML(goods_res)goods_base_list = parse_goods_res.xpath('//*[@id="comment-0"]/div[@class="comment-item"]')for info in goods_base_list:username = info.xpath('./div[1]/div[1]/img/@alt')[0]star = info.xpath('./div[2]/div[1]/@class')[0][-5:]comment = info.xpath('./div[2]/p/text()')[0]print("解析成功")self.to_csv(username, star, comment)time.sleep(1)self.comment_next_click()def to_csv(self, username, star, comment):with open('aaa.csv', 'a', newline="") as f:writer = csv.writer(f)writer.writerow((username, star, comment))print("写入成功")def work_on(self):self.driver.get(self.base_url)self.driver.find_element_by_id("key").send_keys(self.key)self.driver.find_element_by_class_name("button").click()time.sleep(2)self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")res = self.driver.page_sourceself.parse_base_html(res)if __name__ == '__main__':spider = JDSpider()spider.work_on()

京东华为P20手机评论数据抓取相关推荐

  1. Python爬虫实战:手机APP数据抓取分析!谁说不能爬取app数据的?

    大多数手机APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,使用python抓取超级课程表里用户发的话题.主要是练习python爬取app的一些方式和技巧. 1. ...

  2. Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  3. Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论 零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面 ...

  4. requests 可以 scrapy 不行_python学习教程,B站博人传评论数据抓取 scrapy

    点击蓝字"python教程"关注我们哟! 1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多 ...

  5. python爬b站评论_Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  6. Python爬虫入门【19】: B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的×××姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网 ...

  7. 【Python】B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  8. Python爬虫入门教程【19】: B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  9. python入门教程第28讲_Python爬虫入门教程第二十八讲: 《海王》评论数据抓取 scrapy...

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面没 ...

最新文章

  1. KDD Cup 2021城市大脑赛题解析!报名倒计时3天
  2. sql server 清除日志
  3. IDOC、ALE、EDI三者之间的区别与联系
  4. 利用python自带的包可以建立简单的web服务器
  5. 新浪微博客户端(eoe)
  6. mysql_connect报告“No such file or directory“错误的解决方法
  7. 计算机应用基础教程2015答案,《计算机应用基础教程(2015版)》_课后题答案.doc
  8. sonar工具使用常见问题解决
  9. springboot实现定时任务常用的2种方式
  10. 安卓应用安全指南 4.5.2 使用 SQLite 规则书
  11. metasploit 教程之基本参数和扫描
  12. 元宇宙,风口还是扯淡?
  13. java TIFF转JPG并压缩
  14. fastboot使用
  15. 实战:Longhorn存储-2022.2.24
  16. 职场人一起进阶吧(内附技术人进阶路径、Java开源项目完整推荐等)
  17. 10个低成本真实兼职,在家就能干的兼职有那些?
  18. java开发级别t4,腾讯技术等级T系列解读,T4等于百万年薪加股份
  19. 小米NFC手机 手环 复制加密IC门禁卡
  20. python实验大纲_Python程序设计实验-教学大纲-段震

热门文章

  1. 【原创】求空间曲线的切线,法平面
  2. 错失英语,还是想错失另一个世界?
  3. linux上erlang编译安装手记
  4. 基于java电影院订票管理系统(java毕业设计源码)
  5. Magic Leap开发指南(9)-- 6 DOF(Unity)
  6. 桌面提醒 android,如何让手机桌面上显示便签提醒事项?
  7. Swarm服务开启滚动更新
  8. 南网电费接口API文档分享
  9. android P 修改wifi热点默认名称和密码
  10. 转几个12306各家所言 之一