京东文胸爬虫及数据分析

2023-10-24 07:10

本文主要是介绍京东文胸爬虫及数据分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

许久不来写文章了,最近夏令营搞的确实没时间。这次把上次直播讲的东西写成文字,带大家开波车。

爬虫代码

import requests
from lxml import etree
import time
import json
import re
import csvheaders = {'Cookie':'ipLoc-djd=1-72-2799-0; unpl=V2_ZzNtbRZXF0dwChEEfxtbV2IKFQ4RUBcSdg1PVSgZCVAyCkBVclRCFXMUR1NnGFkUZgoZXkpcQxNFCHZXchBYAWcCGllyBBNNIEwHDCRSBUE3XHxcFVUWF3RaTwEoSVoAYwtBDkZUFBYhW0IAKElVVTUFR21yVEMldQl2VH4RWAVmBxVeS19AEHUJR1x6GFsBYQEibUVncyVyDkBQehFsBFcCIh8WC0QcdQ1GUTYZWQ1jAxNZRVRKHXYNRlV6EV0EYAcUX3JWcxY%3d; __jdv=122270672|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_e1ec43fa536c486bb6e62480b1ddd8c9|1496536177759; mt_xid=V2_52007VwMXWllYU14YShBUBmIDE1NVWVNdG08bbFZiURQBWgxaRkhKEQgZYgNFV0FRVFtIVUlbV2FTRgJcWVNcSHkaXQVhHxNVQVlXSx5BEl0DbAMaYl9oUmofSB9eB2YGElBtWFdcGA%3D%3D; __jda=122270672.14951056289241009006573.1495105629.1496491774.1496535400.5; __jdb=122270672.26.14951056289241009006573|5.1496535400; __jdc=122270672; 3AB9D23F7A4B3C9B=EJMY3ATK7HCS7VQQNJETFIMV7BZ5NCCCCSWL3UZVSJBDWJP3REWXTFXZ7O2CDKMGP6JJK7E5G4XXBH7UA32GN7EVRY; __jdu=14951056289241009006573','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
}fp = open('C:/Users/luopan/Desktop/wenxiong1.csv','wt',newline='',encoding='utf-8')
writer = csv.writer(fp)
writer.writerow(('content','creationTime','productColor','productSize','userClientShow','userLevelName'))def get_id(url):html = requests.get(url, headers=headers)selector = etree.HTML(html.text)infos = selector.xpath('//ul[@class="gl-warp clearfix"]/li')for info in infos:try:id = info.xpath('@data-sku')[0]comment_url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv6&productId={}&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'.format(id)get_comment_info(comment_url,id)except IndexError:passdef get_comment_info(url,id):html = requests.get(url,headers=headers)t = re.findall('fetchJSON_comment98vv6\((.*)\);', html.text)json_data = json.loads(t[0])page = json_data['maxPage']urls = ['https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv6&productId=%s&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1'.format(str(i)) for i in range(0,int(page))]for path in urls:html1 = requests.get(path%id, headers=headers)t1 = re.findall('fetchJSON_comment98vv6\((.*)\);', html1.text)json_data = json.loads(t1[0])for comment in json_data['comments']:content = comment['content']creationTime = comment['creationTime']productColor = comment['productColor']productSize = comment['productSize']userClientShow = comment['userClientShow']userLevelName = comment['userLevelName']# print(content,creationTime,productColor,productSize,userClientShow,userLevelName)writer.writerow((content,creationTime,productColor,productSize,userClientShow,userLevelName))time.sleep(2)if __name__ == '__main__':url = 'https://search.jd.com/Search?keyword=%E6%96%87%E8%83%B8&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&suggest=1.his.0.0&page=1&s=1&click=0'get_id(url)

数据分析

首先导入相应的库文件和读入数据。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from pylab import *  
mpl.rcParams['font.sans-serif'] = ['SimHei'] 
mpl.rcParams['axes.unicode_minus'] = False
bra = pd.read_csv(open(r'C:\Users\luopan\Desktop\wenxiong1.csv'))
bra
005LTY7cgy1fhjg59srxgj30o107x3zc.jpg

老司机大概感兴趣的就是文胸尺寸、颜色、和购买的时间,我们对这些列数据进行简单的清洗,以便之后的可视化。

  • 购买时间
    通过describe可以看到购买时间是字符的格式,我们需要把它进行数据格式的转化。具体代码如下。
bra['creationTime'] = pd.to_datetime(bra['creationTime'])
bra['hour'] = [i.hour for i in bra['creationTime']]
bra
005LTY7cgy1fhjgagf8igj30ok087wfc.jpg

我们提取购买的时间。通过可视化表现出来。

hour = bra.groupby('hour').size()
plt.xlim(0,25)
plt.plot(hour,linestyle='solid',color='royalblue',marker='8')
005LTY7cgy1fhjgcdnvjgj30al06ymx6.jpg

通过图可以看出妹子们都喜欢10点后购买文胸,刚上会班,就开始“不务正业”了。

  • 罩杯情况
    首先通过unique方法,看看有哪些罩杯.....
bra.productSize.unique()
005LTY7cgy1fhjgh9lb8oj30gh0cl3z5.jpg

对于广大男同胞来说,这些看着头都晕,我们需要通过python进行数据的清洗,把它弄成ABCDE,嘿嘿。

cup = bra.productSize.str.findall('[a-zA-Z]+').str[0]
cup2 = cup.str.replace('M','B')
cup3 = cup2.str.replace('L','C')
cup4 = cup3.str.replace('XC','D')
bra['cup'] = cup4
bra
005LTY7cgy1fhjgjs0c6qj30fq0bu0sw.jpg

通过可视化可以看出,B的妹子是最多的,可我感觉哪里不对劲,后面再京东查看了部分商品,发现A断码或者有的商品没有A码,所以这可能导致A偏少了,扎心了,老铁。

  • 购买颜色

统一进行清洗可视化,直接上图。


005LTY7cgy1fhjgmvv7crj30g20buwet.jpg

肤色的是最多的,大家知道原因么,嘿嘿。

明天夏令营正式结束,感慨蛮多的!罗罗攀又再一次回归简书,此处该有掌声。

这篇关于京东文胸爬虫及数据分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273532

相关文章

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、

Golang网络爬虫框架gocolly/colly(三)

熟悉了《Golang 网络爬虫框架gocolly/colly 一》和《Golang 网络爬虫框架gocolly/colly 二》之后就可以在网络上爬取大部分数据了。本文接下来将爬取中证指数有限公司提供的行业市盈率。(http://www.csindex.com.cn/zh-CN/downloads/industry-price-earnings-ratio) 定义数据结构体: type Zhj

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

win7下安装Canopy(EPD) 及 Pandas进行python数据分析

先安装好canopy,具体安装版本看自己需要那种,我本来是打算安装win764位的,却发现下载总是出现错误,无奈只能下载了32位的! https://store.enthought.com/downloads/#default 安装好之后,参考如下连接,进行检验: 之后再根据下面提供的连接进行操作,一般是没问题的! http://jingyan.baidu.com/article/5d6