前言

今天给大家介绍的是Python爬取手机商品信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得。

首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对手机信息数据进行爬取。

在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。

通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。

开发工具

Python版本: 3.6

相关模块:

requests模块

json模块

lxml模块

openpyxl

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

文中完整代码及Excel文件,评论留言获取

思路分析

浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的手机商品数据在哪里
这里我们需要页面数据就可以了

代码实现

请求头防止反爬

#这里提示不用请求也是可以的只保留user-agent也可以爬取数据
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36','cookie':'你的Cookie','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','upgrade-insecure-requests': '1','referer': 'https://www.jd.com/',}### 获取商品评论数
```python
import openpyxl
outwb = openpyxl.Workbook()
outws = outwb.create_sheet(index=0)outws.cell(row=1,column=1,value="index")
outws.cell(row=1,column=2,value="title")
outws.cell(row=1,column=3,value="price")
outws.cell(row=1,column=4,value="CommentCount")count=2

根据商品id获取评论数

def commentcount(product_id):url = "https://club.jd.com/comment/productCommentSummaries.action?referenceIds="+str(product_id)+"&callback=jQuery8827474&_=1615298058081"res = requests.get(url, headers=headers)res.encoding = 'gbk'text = (res.text).replace("jQuery8827474(","").replace(");","")text = json.loads(text)comment_count = text['CommentsCount'][0]['CommentCountStr']comment_count = comment_count.replace("+", "")###对“万”进行操作if "万" in comment_count:comment_count = comment_count.replace("万","")comment_count = str(int(comment_count)*10000)return comment_count

获取每一页的商品数据

def getlist(url):global  count#url="https://search.jd.com/search?keyword=笔记本&wq=笔记本&ev=exbrand_联想%5E&page=9&s=241&click=1"res = requests.get(url,headers=headers)res.encoding = 'utf-8'text = res.textselector = etree.HTML(text)list = selector.xpath('//*[@id="J_goodsList"]/ul/li')for i in list:title=i.xpath('.//div[@class="p-name p-name-type-2"]/a/em/text()')[0]price = i.xpath('.//div[@class="p-price"]/strong/i/text()')[0]product_id = i.xpath('.//div[@class="p-commit"]/strong/a/@id')[0].replace("J_comment_","")comment_count = commentcount(product_id)#print(title)#print(price)#print(comment_count)outws.cell(row=count, column=1, value=str(count-1))outws.cell(row=count, column=2, value=str(title))outws.cell(row=count, column=3, value=str(price))outws.cell(row=count, column=4, value=str(comment_count))count = count +1#print("-----")

遍历每一页

def getpage():page=1s = 1for i in range(1,6):print("page="+str(page)+",s="+str(s))url = "https://search.jd.com/Search?keyword=手机=utf-8&wq=手机=56b2bc7c47db4861986201bb72c1b281"+str(page)+"&s="+str(s)+"&click=1"getlist(url)page = page+2s = s+60

结果展示

最后

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

里面有适合小白新手入门实战教程给到大家~

快来和小鱼一起成长进步吧!

① 100+多本PythonPDF(主流和经典的书籍应该都有了)

② Python标准库(最全中文版)

③ 爬虫项目(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

Python爬虫实战,requests+openpyxl模块,爬取手机商品信息数据(附源码)相关推荐

  1. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  2. Python爬虫实战系列(一)-request爬取网站资源

    Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...

  3. python爬虫实战(一)--爬取知乎话题图片

    原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...

  4. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. Python爬虫新手入门教学:爬取前程无忧招聘信息

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境 Python 3.6 Pycharm 相关模块的使用 requests parsel ...

  6. 爬虫实战:使用Selenium爬取京东宝贝信息

    有些页面数据是采用Ajax获取的,但是这些Ajax接口参数比较复杂,可能会加入加密秘钥.对于这种页面,最方便的方法是通过selenium.可以用Selenium来模拟浏览器操作,抓取京东商品信息. 网 ...

  7. python爬虫实战之百度新闻爬取

    百度新闻信息爬取 目录 百度新闻信息爬取 序言 获取在百度新闻中搜索"阿里巴巴"的网页源代码 编写正则表达式提取新闻信息 数据清洗并打印输出 实战完整代码 序言  通过对百度新闻标 ...

  8. Python爬虫实战案例一:爬取猫眼电影

    背景 笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充.关于爬虫的 ...

  9. python实例豆瓣音乐代码_Python爬虫实战(3)-爬取豆瓣音乐Top250数据(超详细

    前言 首先我们先来回忆一下上两篇爬虫实战文章: 第一篇:讲到了requests和bs4和一些网页基本操作. 第二篇:用到了正则表达式-re模块 今天我们用lxml库和xpath语法来爬虫实战. 1.安 ...

最新文章

  1. spring mvc 渲染html,在Spring MVC中使用Thymeleaf模板渲染Web视图
  2. html 表格 左侧表头,左侧是表头的JS表格控件(自写,网上没有的)
  3. 2013递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)
  4. linux 权限rwx(4,2,1)详细说明
  5. Docker教程小白实操入门(7)--基于Commit定制镜像
  6. 中国计算机病毒发展简史
  7. ae效果英文版翻译对照表_AE菜单中英文对照表 (超全)
  8. 杂项-TMod:常见错误
  9. 一线互联网公司的前端开发流程
  10. 怎么样可以在网络上赚钱,告诉你网上赚钱的5种方法!
  11. AutoCAD_FILEDIA
  12. Java判断奇数和偶数。
  13. excel打开密码忘记了_Excel工作表保护密码忘记了怎么办?这一招轻松去除密码...
  14. 7天带你搞定一个图表框架echarts(六)
  15. 息县装修“茶几的选择”
  16. SpringBoot application.properties读取属性配置文件中文显示为乱码问题的解决
  17. 用户态协议栈之epoll实现
  18. 读取股票数据存储到本地MySQL数据库(三)
  19. eclipse配置环境变量 win10
  20. 使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)

热门文章

  1. 橡皮筋算法的原理和实现
  2. 源码解析view的显示判断用isShown()还是View.VISIBLE
  3. 浙政钉踩坑记录:真机调试-H5APP 不存在
  4. mac下安装安装包,遇到“安装器遇到了一个错误,导致安装失败”
  5. 计算机房安全的环境条件,通信局(站)机房的环境条件要求
  6. python——字典生成工具
  7. 微信小程序开发中常见的技术点梳理
  8. pythonipo模型_【python量化】Fama-French三因子回归A股实证(附源码)
  9. 3dsMax镜像,但是动画不镜像问题
  10. 生成对抗网络(Generative Adversarial Networks,GAN)