抓取京东的某个商品价格

  • 来源
  • 抓取

来源

京东

抓取

选择一种商品搜索然后爬取商品价格信息。

import requests
res=requests.get('https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&enc=utf-8&suggest=1.his.0.0&wq=&pvid=0138043bdf1d4750b99643554273c191').text
print(res)

发现结果为

<script>window.location.href='https://passport.jd.com/uc/login'</script>

需要登录,就加入User-Agent这个请求头,如图的值。

import requests
headers={'User-Agent': '填写需要的部分'
}
url='https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&enc=utf-8&suggest=1.his.0.0&wq=&pvid=0138043bdf1d4750b99643554273c191'
res=requests.get(url=url,headers=headers).text
print(res)

得到网址。
然后开始针对价格的代码位置

复制xpath值,对比

'//*[@id="J_goodsList"]/ul/li[1]/div/div[2]/strong/i'
'//*[@id="J_goodsList"]/ul/li[2]/div/div[2]/strong/i'

变化在li元素上
选择分两部分xpath

from lxml import etree
list=etree.HTML(res).xpath('//*[@id="J_goodsList"]/ul/li')
for i in list:p=i.xpath('div/div[2]/strong/i/text()')[0]print(p)

然后再看1,2,3页的网址

'https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&qrst=1&suggest=1.his.0.0&wq=%E8%8B%A6%E7%93%9C&stock=1&pvid=0138043bdf1d4750b99643554273c191&page=1&s=1&click=0'
'https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&qrst=1&suggest=1.his.0.0&wq=%E8%8B%A6%E7%93%9C&stock=1&pvid=0138043bdf1d4750b99643554273c191&page=3&s=56&click=0'
'https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&qrst=1&suggest=1.his.0.0&wq=%E8%8B%A6%E7%93%9C&stock=1&pvid=0138043bdf1d4750b99643554273c191&page=5&s=116&click=0'

变化的值为page、s两个值,page有规律,s则难看出规律。
同时将网页翻到底部,会加载js

从js中取出一个数10029051555348,在网页源代码中查找

然后确定这些wids数与新加载的js有关,就需要正则匹配,然后使用js的请求的网址:

num=re.compile("wids:'([\d+,]+)'").findall(res)[0]
url='https://search.jd.com/s_new.php?keyword=%E8%8B%A6%E7%93%9C&qrst=1&suggest=1.his.0.0&wq=%E8%8B%A6%E7%93%9C&stock=1&pvid=0138043bdf1d4750b99643554273c191&page=4&s=86&scrolling=y&log_id=1626253412276.4471&tpl=1_M&isList=0&show_items='+num

由于仅User-Agent这个请求头不够,需要补充referer。

headers={'referer': '填写需要的部分',
'User-Agent': '填写需要的部分'
}
res2==requests.get(url=url,headers=headers).text

此时得到响应里的源代码。

从代码中理解到xpath值为’//li[1]/div/div[2]/strong/i’
因此单独爬取

list=etree.HTML(res2).xpath('//li')
for i in list:p=i.xpath('div/div[2]/strong/i/text()')[0]print(p)

然后还爬取商品名,代码如下

import re
import requests
headers={'User-Agent': '填写需要的部分'
}
url='https://search.jd.com/Search?keyword=%E8%8B%A6%E7%93%9C&enc=utf-8&suggest=1.his.0.0&wq=&pvid=0138043bdf1d4750b99643554273c191'
res=requests.get(url=url,headers=headers).text
num=re.compile("wids:'([\d+,]+)'").findall(res)[0]
url='https://search.jd.com/s_new.php?keyword=%E8%8B%A6%E7%93%9C&qrst=1&suggest=1.his.0.0&wq=%E8%8B%A6%E7%93%9C&stock=1&pvid=0138043bdf1d4750b99643554273c191&page=4&s=86&scrolling=y&log_id=1626253412276.4471&tpl=1_M&isList=0&show_items='+num
headers={'referer': '填写需要的部分',
'User-Agent': '填写需要的部分'
}
res2=requests.get(url=url,headers=headers).text
from lxml import etree
list=etree.HTML(res).xpath('//*[@id="J_goodsList"]/ul/li')
for i in list:p=i.xpath('div/div[2]/strong/i/text()')[0]k=i.xpath('div/div[3]/a/em//text()')print(p,k)
list=etree.HTML(res2).xpath('//li')
for i in list:p=i.xpath('div/div[2]/strong/i/text()')[0]k=i.xpath('div/div[3]/a/em//text()')print(p, k)

显示:

56.00 ['苦瓜', '新鲜蔬菜农家自种 当季凉瓜现摘 1000g']
23.80 ['新鲜', '苦瓜', '1-5斤现摘农家自种蔬菜凉瓜山东生鲜瓜 五斤泡沫箱']
33.80 ['京东超市', '\t\n【买2件=发3罐 共510克】丙田 原味', '苦瓜', '茶 花草茶 泡水喝的', '苦瓜', '片', '苦瓜', '干 170克/罐']
...

如果想商品顺序一样的话,就需要cookie值。其本身就是记录用户的习惯的,因此,能更加一致。

抓取京东的某个商品价格相关推荐

  1. [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)

    目录 一.环境 二.简介 三.京东网页分析 1.获取商品信息入口--商品列表链接获取 2.获取商品信息入口--商品详情链接获取 3.商品详情获取 4.商品评论获取 四.代码实现 五.运行结果 六.结语 ...

  2. python爬虫数据分析项目 双十一_基于Python爬取京东双十一商品价格曲线

    一年一度的双十一就快到了,各种砍价.盖楼.挖现金的口令将在未来一个月内充斥朋友圈.微信群中.玩过多次双十一活动的小编表示一顿操作猛如虎,一看结果2毛5.浪费时间不说而且未必得到真正的优惠,双十一电商的 ...

  3. 基于python的scrapy爬虫抓取京东商品信息

    这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.p ...

  4. python爬取京东手机参数_python抓取京东小米8手机配置信息

    本文代码是使用python抓取京东小米8手机的配置信息 首先找到小米8商品的链接:https://item.jd.com/7437788.html 然后找到其配置信息的标签,我们找到其配置信息的标签为 ...

  5. php 获取京东商品详情,用正则表达式,抓取京东的商品列表

    用正则表达式,抓取京东的商品列表 保存到服务器 抓取文件 实例 require 'function.php'; $url = 'https://list.jd.com/list.html?cat=73 ...

  6. python爬取京东图书_Python抓取京东图书评论数据

    Python抓取京东图书评论数据 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python抓取京东图书评论数据.txt ] (友情提示:右键点上行txt文档名- ...

  7. 安卓苹果手机抓取京东cookie

    安卓手机抓取京东cookie 1.手机下载Alook浏览器 下载地址 https://ddayh.lanzoui.com/ioHNNuzjunc 2.打开Alook浏览器访问 京东手机版 网址http ...

  8. python抓取京东联盟优惠券_[爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)...

    网上抓取京东数据的文章,现在要么无法抓取数据,要么只能抓取部分数据,本文将介绍如何抓取京东全站数据,包括商品信息.店铺信息,评论信息,分类信息等. -------------------------- ...

  9. Python爬虫编程思想(70): 项目实战--抓取京东商城手机销售排行榜

    本文的例子使用requests抓取京东商城手机销售排行榜,并使用pyquery和CSS选择器提取相关的信息,同时将这些信息保存到Excel文件中.本例抓取总排行榜,并单独提取Apple.华为和小米手机 ...

最新文章

  1. Android 手机适配
  2. Xmind笔记之HTML5+CSS
  3. Virtual Judge —— Nim TopCoder - 11469
  4. C++匿名管道详解及简单案例(基于VS2013)
  5. Visual studio代码行数统计
  6. 安装后添加没有class library_《没有秘密的你》:戚薇曝光手机号,粉丝急忙添加后却甜哭了?...
  7. 技术交流论坛_研发部第四次技术交流论坛
  8. 最优化学习笔记(七)——Levenberg-Marquardt修正(牛顿法修正)
  9. 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
  10. 3.空域图像处理的洪荒之力
  11. springBoot+Vue导出Excel
  12. 芯片设计流程 芯片的设计原理图
  13. 南京大学计算机系2019复试离散题目-逻辑与推理
  14. 修行一定要在寺院里吗,出家人离开寺院修行,都属邪门外道吗?
  15. 陈婉芬老师的精髓金玉良言----相信篇,观念篇
  16. 【Linux】定时任务crontab和at命令详解
  17. 【VUE】vue网站设计-----字节招聘网站设计
  18. 活动报道 | 四家香港科大EMBA校友所在企业荣登“中国卓越管理公司”第三届榜单...
  19. AWD攻防技巧(水文)
  20. java从配置文件中读取参数

热门文章

  1. Hp-socket高性能网络库二--tcp组件pull接收模型
  2. 【BigDecimal.compareTo 遇到的坑】
  3. ABAP编程语言-概览
  4. Android Sensor分析
  5. 如何把极点五笔卸载干净
  6. 什么是冰山模型,冰山模型的三层结构
  7. CefSharp 常用设置
  8. ROS标记路由(MikroTik路由器)
  9. Arcmap拓扑检查:重叠或者有空隙的面
  10. CAD无法拖动工具栏或菜单解决方法