python爬虫爬取京东店铺商品价格数据(更新版)
主要使用的库:
requests:爬虫请求并获取源码
re:使用正则表达式提取数据
json:使用JSON提取数据
pandas:使用pandans存储数据
##sqlalchemy :备用方案,上传数据到mysql
以下是源代码:
# -*- coding:utf-8 -*-
import requests
import re
import random
import time
import json
import pymysql
from sqlalchemy import create_engine
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import pandas as pd
requests.packages.urllib3.disable_warnings(InsecureRequestWarning) ###禁止提醒SSL警告class jd(object):def __init__(self):self.s = requests.session() ## 创建一个session对象headers = {'accept':'application/json, text/javascript, */*; q=0.01','accept-encoding':'gzip, deflate, br','User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',}self.s.headers.update(headers) ### 设置请求头#self.engine = create_engine('mysql+pymysql://root:123456@192.168.0.1:3306/jd') ##存储到SQLdef getdata(self,url,name):getdate=time.strftime("%Y-%m-%d",time.localtime())self.shopid=re.search('index-(.*?).html',url).group(1) ###获取店铺ID号self.s.get('https://shop.m.jd.com/search/search?shopId='+str(self.shopid))for i in range(1,10000): ###爬取页数范围 没有找到商品后会自动退出循环wareId_list = []wname_list = []jdPrice_list = []time.sleep(random.random()) ##随机延时0-1秒t = int(time.time() * 1000)## https://wqsou.jd.com/search/searchjson?datatype=1&page=2&pagesize=40&merge_sku=yes&qp_disable=yes&key=ids%2C%2C121614&_=1537524375713&sceneval=2&g_login_type=1&callback=jsonpCBKQ&g_ty=lssearchurl = 'https://wqsou.jd.com/search/searchjson?datatype=1&page={}&pagesize=40&merge_sku=yes&qp_disable=yes&key=ids%2C%2C{}&_={}&sceneval=2&g_login_type=1&callback=jsonpCBKA&g_ty=ls'.format(i,self.shopid,t) ##请求数据网址print(searchurl)req=self.s.get(url=searchurl,verify=False).text ###获取数据print(req)print(name,i)wareId=re.findall('"wareid": "(.*?)",',req) ##获取商品IDwname=re.findall('"warename": "(.*?)",',req) ###获取商品名称jdPrice=re.findall('"dredisprice": "(.*?)",',req) ###获取商品价格if wareId==[]: ###如果没有找到ID退出循环break#####处理数据wareId_list.extend(wareId)wname_list.extend(wname)jdPrice_list.extend(jdPrice)wareId_l=len(wareId_list)name_list=[]name_list.append(name)name_list.extend(name_list*(wareId_l-1))getdate_list = []getdate_list.append(getdate)getdate_list.extend(getdate_list * (wareId_l - 1))jddata={'name':name_list,'wareId':wareId_list,'wname':wname_list,'jdPrice':jdPrice_list,'update': getdate_list}df = pd.DataFrame(data=jddata)df.to_csv(r'e:\jdmall.csv', index=False, encoding="GB18030") ###保存csv文件#df.to_sql('店铺前端', con=self.engine, if_exists='append', index=False) ##上传到数据库if __name__ == '__main__':j=jd()url='https://mall.jd.com/index-1000000693.html'nm='intel'j.getdata(url,nm)
【腾讯云】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元
python爬虫爬取京东店铺商品价格数据(更新版)相关推荐
- 利用python爬虫爬取京东商城商品图片
笔者曾经用python第三方库requests来爬取京东商城的商品页内容,经过解析之后发现只爬到了商品页一半的图片.(这篇文章我们以爬取智能手机图片为例) 当鼠标没有向下滑时,此时查看源代码的话,就会 ...
- python爬取京东商品价格走势,python爬取京东店铺商品价格数据(已过期)
# -*- coding:utf-8 -*- import requests import re import random import time import json from requests ...
- python爬虫爬取天猫店铺商品数据
#!coding=utf-8 import requests import re import random import time import json from requests.package ...
- python爬取天猫,python如何爬取天猫店铺商品链接?
在使用python爬虫爬取网页时会遇到很多含有特殊符号的情况,当把链接复制到浏览器打开,发现每个节点都多了个\,直接使用response.xpath()无法定位元素,为避免定位不到元素的问题,应先对响 ...
- python爬虫爬取京东、淘宝、苏宁上华为P20购买评论
爬虫爬取京东.淘宝.苏宁上华为P20购买评论 1.使用软件 Anaconda3 2.代码截图 三个网站代码大同小异,因此只展示一个 3.结果(部分) 京东 淘宝 苏宁 4.分析 这三个网站上的评论数据 ...
- python爬虫爬取京东商品评价_网络爬虫-爬取京东商品评价数据
前段时间做商品评价的语义分析,需要大量的电商数据,于是乎就自己动手爬取京东的数据.第一次接触爬虫是使用selenium爬取CNKI的摘要,基于惯性思维的我仍然想用selenium+Firefox的方法 ...
- python爬虫爬取京东商品评价_python爬取京东商品信息及评论
''' 爬取京东商品信息: 功能: 通过chromeDrive进行模拟访问需要爬取的京东商品详情页(https://item.jd.com/100003196609.html)并且程序支持多个页面爬取 ...
- JS+Selenium+excel追加写入,使用python成功爬取京东任何商品
之前一直是requests库做爬虫,这次尝试下使用selenium做爬虫,效率不高,但是却没有限制,文章是分别结合大牛的selenium爬虫以及excel追加写入操作而成,还有待优化,打算爬取更多信息 ...
- python爬虫爬取京东_Python爬虫学习 爬取京东商品
1. 本节目标 以抓取京东 App 的商品信息和评论为例,实现 Appium 和 mitmdump 二者结合的抓取.抓取的数据分为两部分:一部分是商品信息,我们需要获取商品的 ID.名称和图片,将它们 ...
最新文章
- 《Javascript高级程序设计》读书笔记之继承
- 提供MapXtreme 2004 6.2 NCP破解文件及安装方法(已经不能提供了,等待破解最新的吧)...
- 2014\Province_C_C++_A\1 猜年龄
- MongoDB-集群搭建
- c语言程序设计黄保和第二章,C语言程序设计答案(黄保和编)第6章
- Erlang库 -- 有意思的库汇总
- 联想gen系列服务器,Hpe Microserver Gen10 Plus开箱
- 【OJ】洛谷暴力枚举题单题解锦集
- 我慕了!腾讯大手一挥,员工买房最高可申请免息借款90万
- JAVA获取sjis文件乱码_下载文件时,文件名乱码。 | 学步园
- iOS 抓包工具限免,速度下载!【附使用教程】
- 华为服务器系统图标,监控服务器图标
- 信息系统服务器搬迁,系统搬迁方案
- 魔兽三界血歌鸿蒙武器怎么合成,《伏魔战记》关于武器材料出处以及合成以及对一些武器的使用心的...
- 局域网,手机与电脑文件共享
- 解决Win10下安装Winpcap失败
- Teams Bot App 代码解析
- nodejs+vue 蛋糕甜品商城系统
- Navicat使用指南(一)
- 前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
热门文章
- 华为手机里的计算机怎么设置,简单十步设置Huawei Share,手机与电脑传输从此告别数据线-华为手机怎么连接电脑...
- Theia 拓展开发常用代码总结
- 15条经典的英语绕口令
- 图像识别的深度残差学习
- 无人值守称重系统将称重带入一个新时代
- MacPro查看WIFI密码
- 直达通你身边的营销专家
- 通用单口RJ45种类
- 解决 QRibbon 在VS+Qt 环境下的编码报错问题 “文本后缀无效; 未找到文文本运算符或文本运算符模板“
- LOL服务器维护打排位算吗,英雄联盟最特殊的五个大区,最后一个等一天都不能开一局排位!...