抓取京东的某个商品价格
抓取京东的某个商品价格
- 来源
- 抓取
来源
京东
抓取
选择一种商品搜索然后爬取商品价格信息。
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值。其本身就是记录用户的习惯的,因此,能更加一致。
抓取京东的某个商品价格相关推荐
- [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)
目录 一.环境 二.简介 三.京东网页分析 1.获取商品信息入口--商品列表链接获取 2.获取商品信息入口--商品详情链接获取 3.商品详情获取 4.商品评论获取 四.代码实现 五.运行结果 六.结语 ...
- python爬虫数据分析项目 双十一_基于Python爬取京东双十一商品价格曲线
一年一度的双十一就快到了,各种砍价.盖楼.挖现金的口令将在未来一个月内充斥朋友圈.微信群中.玩过多次双十一活动的小编表示一顿操作猛如虎,一看结果2毛5.浪费时间不说而且未必得到真正的优惠,双十一电商的 ...
- 基于python的scrapy爬虫抓取京东商品信息
这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.p ...
- python爬取京东手机参数_python抓取京东小米8手机配置信息
本文代码是使用python抓取京东小米8手机的配置信息 首先找到小米8商品的链接:https://item.jd.com/7437788.html 然后找到其配置信息的标签,我们找到其配置信息的标签为 ...
- php 获取京东商品详情,用正则表达式,抓取京东的商品列表
用正则表达式,抓取京东的商品列表 保存到服务器 抓取文件 实例 require 'function.php'; $url = 'https://list.jd.com/list.html?cat=73 ...
- python爬取京东图书_Python抓取京东图书评论数据
Python抓取京东图书评论数据 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python抓取京东图书评论数据.txt ] (友情提示:右键点上行txt文档名- ...
- 安卓苹果手机抓取京东cookie
安卓手机抓取京东cookie 1.手机下载Alook浏览器 下载地址 https://ddayh.lanzoui.com/ioHNNuzjunc 2.打开Alook浏览器访问 京东手机版 网址http ...
- python抓取京东联盟优惠券_[爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)...
网上抓取京东数据的文章,现在要么无法抓取数据,要么只能抓取部分数据,本文将介绍如何抓取京东全站数据,包括商品信息.店铺信息,评论信息,分类信息等. -------------------------- ...
- Python爬虫编程思想(70): 项目实战--抓取京东商城手机销售排行榜
本文的例子使用requests抓取京东商城手机销售排行榜,并使用pyquery和CSS选择器提取相关的信息,同时将这些信息保存到Excel文件中.本例抓取总排行榜,并单独提取Apple.华为和小米手机 ...
最新文章
- Android 手机适配
- Xmind笔记之HTML5+CSS
- Virtual Judge —— Nim TopCoder - 11469
- C++匿名管道详解及简单案例(基于VS2013)
- Visual studio代码行数统计
- 安装后添加没有class library_《没有秘密的你》:戚薇曝光手机号,粉丝急忙添加后却甜哭了?...
- 技术交流论坛_研发部第四次技术交流论坛
- 最优化学习笔记(七)——Levenberg-Marquardt修正(牛顿法修正)
- 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
- 3.空域图像处理的洪荒之力
- springBoot+Vue导出Excel
- 芯片设计流程 芯片的设计原理图
- 南京大学计算机系2019复试离散题目-逻辑与推理
- 修行一定要在寺院里吗,出家人离开寺院修行,都属邪门外道吗?
- 陈婉芬老师的精髓金玉良言----相信篇,观念篇
- 【Linux】定时任务crontab和at命令详解
- 【VUE】vue网站设计-----字节招聘网站设计
- 活动报道 | 四家香港科大EMBA校友所在企业荣登“中国卓越管理公司”第三届榜单...
- AWD攻防技巧(水文)
- java从配置文件中读取参数