当前位置: 首页 > news >正文

通辽市工程建设网站免费企业信息发布平台

通辽市工程建设网站,免费企业信息发布平台,网站需要做404页面吗,wordpress屏蔽国内ip目录 前言数据来源分析1. 明确需求2. 抓包分析#xff1a;通过浏览器自带工具: 开发者工具 代码实现步骤: 发送请求 - 获取数据 - 解析数据 - 保存数据发送请求解析数据保存数据 数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各… 目录 前言数据来源分析1. 明确需求2. 抓包分析通过浏览器自带工具: 开发者工具 代码实现步骤: 发送请求 - 获取数据 - 解析数据 - 保存数据发送请求解析数据保存数据 数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各大品牌商品原价平均价格唯品会泳衣商品售价价格区间 前言 唯品会是中国领先的在线特卖会电商平台之一它以“品牌特卖会”的模式运营为会员提供品牌折扣商品。唯品会的商品包括服装、鞋类、箱包、美妆、家居、母婴、食品等各类品牌产品。 这就是今天的受害者我们要拿取上面的泳衣数据然后可以做些数据可视化 数据来源分析 1. 明确需求 明确采集网站以及数据 网址: https://category.vip.com/suggest.php?keyword%E6%B3%B3%E8%A1%A3ff235|12|1|1 数据: 商品信息 2. 抓包分析通过浏览器自带工具: 开发者工具 打开开发者工具: F12 / 右键点击检查选择network刷新网页: 让网页数据重新加载一遍搜索关键字: 搜索数据在哪里 找到数据包: 50条商品数据信息 整页数据内容: 120条 -- 分成三个数据包 1. 前50条数据 -- 前50个商品ID 2. 中50条数据 -- 中50个商品ID 3. 后20条数据 -- 后20个商品ID 已知: 数据分为三组 -- 对比三组数据包请求参数变化规律 请求参数变化规律: 商品ID 分析找一下 是否存在一个数据包, 包含所有商品ID 如果想要获取商品信息 -- 先获取所有商品ID -- ID存在数据包 代码实现步骤: 发送请求 - 获取数据 - 解析数据 - 保存数据 发送请求 我们定义了要爬取的URL地址并设置了User-Agent请求头以模拟浏览器发送请求。 使用requests.get方法发送GET请求并将响应保存在response变量中。 headers {# 防盗链 告诉服务器请求链接地址从哪里跳转过来Referer: https://category.vip.com/,# 用户代理, 表示浏览器基本身份信息User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) } # 请求链接 url https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank data {# 回调函数# callback: getMerchandiseIds,app_name: shop_pc,app_version: 4.0,warehouse: VIP_HZ,fdc_area_id: 104103101,client: pc,mobile_platform: 1,province_id: 104103,api_key: 70f71280d5d547b2a7bb370a529aeea1,user_id: ,mars_cid: 1689245318776_e2b4a7b51f99b3dd6a4e6d356e364148,wap_consumer: a,standby_id: nature,keyword: 泳衣,lv3CatIds: ,lv2CatIds: ,lv1CatIds: ,brandStoreSns: ,props: ,priceMin: ,priceMax: ,vipService: ,sort: 0,pageOffset: 0,channelId: 1,gPlatform: PC,batchSize: 120,_: 1689250387620, } # 发送请求 -- Response [200] 响应对象 response requests.get(urlurl, paramsdata, headersheaders)解析数据 然后我们定义了起始标签和结束标签通过循环的方式遍历文本并提取每个商品的名称和价格。 # 商品ID - 120个 products [i[pid] for i in response.json()[data][products]] # 把120个商品ID 分组 -- 切片 起始0 结束50 步长:1 # 列表合并成字符串 product_id_1 ,.join(products[:50]) # 提取前50个商品ID 0-49 product_id_2 ,.join(products[50:100]) # 提取中50个商品ID 50-99 product_id_3 ,.join(products[100:]) # 提取后20个商品ID 100到最后 product_id_list [product_id_1, product_id_2, product_id_3]for product_id in product_id_list:# 请求链接link https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2# 请求参数params {# callback: getMerchandiseDroplets2,app_name: shop_pc,app_version: 4.0,warehouse: VIP_HZ,fdc_area_id: 104103101,client: pc,mobile_platform: 1,province_id: 104103,api_key: 70f71280d5d547b2a7bb370a529aeea1,user_id: ,mars_cid: 1689245318776_e2b4a7b51f99b3dd6a4e6d356e364148,wap_consumer: a,productIds: product_id,scene: search,standby_id: nature,extParams: {stdSizeVids:,preheatTipsVer:3,couponVer:v2,exclusivePrice:1,iconSpec:2x,ic2label:1,superHot:1,bigBrand:1},context: ,_: 1689250387628,}# 发送请求json_data requests.get(urllink, paramsparams, headersheaders).json()for index in json_data[data][products]:# 商品信息attr ,.join([j[value] for j in index[attrs]])# 创建字典dit {标题: index[title],品牌: index[brandShowName],原价: index[price][marketPrice],售价: index[price][salePrice],折扣: index[price][mixPriceLabel],商品信息: attr,详情页: fhttps://detail.vip.com/detail-{index[brandId]}-{index[productId]}.html,}csv_writer.writerow(dit)print(dit)保存数据 然后我们使用open函数创建一个CSV文件并指定文件名、写入模式、编码方式等参数。然后使用csv.DictWriter初始化一个写入器对象并指定表头。 我们使用writer.writeheader()来写入CSV文件的表头然后遍历items列表使用writer.writerow()将每个商品的数据写入CSV文件中。 f open(商品.csv, modea, encodingutf-8, newline) csv_writer csv.DictWriter(f, fieldnames[标题,品牌,原价,售价,折扣,商品信息,详情页, ]) csv_writer.writeheader()数据可视化 先读取数据 df pd.read_csv(商品.csv) df.head()泳衣商品性别占比 from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Fakerc (Bar().add_xaxis(sex_type).add_yaxis(, sex_num).set_global_opts(title_optsopts.TitleOpts(title泳衣商品性别占比, subtitle),brush_optsopts.BrushOpts(),) ) c.load_javascript()from pyecharts import options as opts from pyecharts.charts import Piec (Pie().add(, [list(z) for z in zip(sex_type, sex_num)]).set_global_opts(title_optsopts.TitleOpts(title泳衣商品性别占比)).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c})) ) c.render_notebook()商品品牌分布占比 shop_num df[品牌].value_counts().to_list() shop_type df[品牌].value_counts().index.to_list() c (Pie().add(,[list(z)for z in zip(shop_type, shop_num)],center[40%, 50%],).set_global_opts(title_optsopts.TitleOpts(title商品品牌分布占比),legend_optsopts.LegendOpts(type_scroll, pos_left80%, orientvertical),).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c})) ) c.render_notebook()各大品牌商品售价平均价格 # 按城市分组并计算平均薪资 avg_salary df.groupby(品牌)[售价].mean() ShopType avg_salary.index.tolist() ShopNum [int(a) for a in avg_salary.values.tolist()] # 创建柱状图实例 c (Bar().add_xaxis(ShopType).add_yaxis(, ShopNum).set_global_opts(title_optsopts.TitleOpts(title各大品牌商品售价平均价格),visualmap_optsopts.VisualMapOpts(dimension1,pos_right5%,max_30,is_inverseTrue,),xaxis_optsopts.AxisOpts(axislabel_optsopts.LabelOpts(rotate45)) # 设置X轴标签旋转角度为45度).set_series_opts(label_optsopts.LabelOpts(is_showFalse),markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_min, name最小值),opts.MarkLineItem(type_max, name最大值),opts.MarkLineItem(type_average, name平均值),]),) )c.render_notebook()各大品牌商品原价平均价格 # 按城市分组并计算平均薪资 avg_salary df.groupby(品牌)[原价].mean() ShopType_1 avg_salary.index.tolist() ShopNum_1 [int(a) for a in avg_salary.values.tolist()] # 创建柱状图实例 c (Bar().add_xaxis(ShopType_1).add_yaxis(, ShopNum_1).set_global_opts(title_optsopts.TitleOpts(title各大品牌商品原价平均价格),visualmap_optsopts.VisualMapOpts(dimension1,pos_right5%,max_30,is_inverseTrue,),xaxis_optsopts.AxisOpts(axislabel_optsopts.LabelOpts(rotate45)) # 设置X轴标签旋转角度为45度).set_series_opts(label_optsopts.LabelOpts(is_showFalse),markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_min, name最小值),opts.MarkLineItem(type_max, name最大值),opts.MarkLineItem(type_average, name平均值),]),) )c.render_notebook()唯品会泳衣商品售价价格区间 pie1 (Pie(init_optsopts.InitOpts(themedark,width1000px,height600px)).add(, datas_pair_2, radius[35%, 60%]).set_series_opts(label_optsopts.LabelOpts(formatter{b}:{d}%)).set_global_opts(title_optsopts.TitleOpts(title唯品会泳衣商品\n\n售价价格区间, pos_leftcenter, pos_topcenter,title_textstyle_optsopts.TextStyleOpts(color#F0F8FF, font_size20, font_weightbold),)).set_colors([#EF9050, #3B7BA9, #6FB27C, #FFAF34, #D8BFD8, #00BFFF, #7FFFAA]) ) pie1.render_notebook() 问题解答 · 源码获取 · 技术交流 · 抱团学习请联系
http://www.pierceye.com/news/353069/

相关文章:

  • 做论坛网站能赚钱吗山东济南网站建设公司
  • 建网站海外英文建站
  • 学网站开发网页制作苏州模板建站哪家好
  • 音乐网站建设怎么上传音乐易点租电脑租赁官网
  • 做足球网站前景一个网站源码值多少钱
  • 成都网站排名优化公司上海创意网站建设
  • 贵阳市住房城乡建设局八大员网站wordpress 输出 文章时间
  • 那个装修公司的网站做的好想创业去哪里找项目
  • 公选课网页制作与网站建设网页游戏平台十大排名
  • 无锡锡牛网站建设网站倒计时
  • 南通做外贸网站网站建设培训四川
  • 微小店适合卖做分类网站吗手机开发者网站
  • 广州建企业网站网页设计是啥意思
  • wap手机网站建设刀模 东莞网站建设
  • 怎样做网站的外链做推广优化的网站有哪些内容
  • 永嘉规划建设局网站备案个人网站做淘宝客
  • 枣庄网站建设电话网站怎么做 凡科
  • 视频网站点击链接怎么做的宁波网站建设接单
  • 网站报价表怎么做wordpress 横向扩展
  • 溧阳网站建设哪家好网站建设的教程
  • 360怎么做网站做pop网站
  • 网站建设方案书2000字中国正国级名单
  • 企业网站的布局类型网站移动页面怎么做的
  • 人是用什么做的视频网站吗wordpress如何设水印图片
  • 蛋糕店的网站建设咋写深圳市宝安区邮政编码
  • 东莞横沥网站建设杭州网站制作排名
  • 百合怎么做网站网站开发语
  • 网站搭建哪里找最好天津市建设工程信息网站
  • 有免费注册网站吗做教育网站还挣钱吗
  • 网站做百度推广需要哪些条件店铺推广软文范例