--------代码在文章最下面----------

俗话说:钻石恒久远,一颗永流传
先说一下背景,楼主是某小型互联网公司的数据分析师,因为以前有编程的基础,所以略懂一点爬虫相关的技术。由于到了结婚的年龄,所以找到政府领取了女朋友一枚,并且把婚期订到了今年的圣诞节。婚期有了怎么能没有婚礼必备的东西----钻石呢?

先是在各种周大福、周六福、周福福看,后来又在某东、某宝、某官网看,翻遍了网上各种达人教你如何选择钻戒的文章、视频。

最终总结了一下,钻石主要看一下几点:

价格   克拉数   颜色  净度  切工  荧光

由于加工好的成品钻价格实在是太高了,所以就把主意打到了"裸钻"身上,去了大罗塘一类的珠宝批发市场,热了一身的汗,但是还是感觉没有合适的

无意间发现一个神仙网站就是这个bluenile
同样50分H颜色VS1切工的钻石,在这里买裸钻居然还不到1W块

先看一下关于这个品牌的百度百科

通过我的一番筛选最终选定了一颗55分、F色、VVS2净度、3EX切工、无荧光的钻戒,花费价格¥18000

啰啰嗦嗦,说了这么多,现在上代码

# 下面的代码是爬取并写入到CSV文件中
import requests
import time
import json
import pandas as pd
import reheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","Cookie": "browserCheck=ver~1&browserCheck~true; holiday=ver~1&hasAdjustedHolidayShipping~false; GUID=3AC0A668_AF4E_4021_88C3_172963437EAA; bld=ver~9&cl~0.0; wishlist=ver~2&wishList~0; migrationstatus=ver~2&redirected~false; bncust=ver~2&SignInURL~https://secure.bluenile.com/cn/account/settings&CustName~chuo&CID~12694412-2-2834999531; pop=ver~4&belpop~false&china~true&emailpop~false&french~false&ie~false&internationalSelect~false&iphoneApp~false&s100off~false&survey~false&uae~false&webroompop~false; dsearch=ver~9&visible~800000000&newUser~true&shownHolidayShipping~&state~RD---------------------0------0,null,null-default-asc-CNY-------; bnsetsearch=ver~3&filters~ring_style|Solitaire|Ring+Style&id~BYOR+Setting+Search&sort~BS; devconfig=ver~4&debugmode~false&force_serve_awesome~false&force_serve_local_chat~false&force_serve_local_yotpo~false&force_serve_non_awesome~false&force_serve_non_local_chat~false&force_serve_non_local_yotpo~false&force_serve_non_pre_launch~false&force_serve_non_solr~false&force_serve_pre_launch~false&force_serve_solr~false; sitetrack=ver~3&jse~1; locale=ver~2&country~CHN&currency~CNY&language~zh-Hans&productSet~BNCN; IR_gbd=bluenile.com; bnper=ver~7&NIB~1&DM~-&EMAIL~dN6dTZp3qzrDPmJsihd9zydr4ZadzVcO&EU_AGREED~false&GUID~3AC0A668_AF4E_4021_88C3_172963437EAA&LV~2022-06-24T21:13:47.178-07:00&PRE-MOBILE~Web&NOT_SELL~false&PAGING~-1&SESS-CT~4&STC~3671KW&FB_MINI~false&SUB~true; bnses=ver~4&ats~20220624+21:13&cdclosed~false&filterTooltipClosed~false&ace~false&quickshipseen~false&fbcs~false&imeu~false&nu~false&ss~0&legal_notice_eu_closed~false&mbpop~false&sswpu~false&exitpu~false&spvc~4&deo~false&nogtm~false; device=ver~2&orientation~Landscape&resolution~975x809&device_type~Desktop; bn_uuid-ssn=0ILW2XgXHMktI33B0CaF86Q3sONToYu7yrsxfZk7N8gNSZHylpZCJ2dvtu6MYCzuGVp3KVPop0hwQc7gfjrcf0rweQ8kmDzYUsIQatyy2klUBvDmb9O4O7KsARhEA8uXfsw3ecRVdq2i8DGGjrfiH5BO4; bn_uuid=0ILW2XgXHMktI33B0CaF86Q3sONToYu7yrsxfZk7N8gNSZHylpZCJ2dvtu6MYCzuGVp3KVPop0hwQc7gfjrcf0rweQ8kmDzYUsIQatyy2klUBvDmb9O4O7KsARhEA8uXfsw3ecRVdq2i8DGGjrfiH5BO4; IR_9430=1656130432573|0|1656130432573||; IR_PI=79e3d7ad-1005-38d9-8862-07b2bc3d62bc|1656216832573","Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7","Host": "www.bluenile.com","Referer": "https://www.bluenile.com/cn/diamond-search","sec-ch-ua": '" Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"',"sec-ch-ua-mobile": "?0","sec-ch-ua-platform": "Windows","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": 'cors',"Sec-Fetch-Site": "same-origin","x-bn-pageid": "Diamond Search"
}end_price = '11416.39'
count = 1
count_num = 0
for _ in range(1000):time_stamp = time.time() * 10data = {"startIndex": 0,"pageSize": 500,"_": time_stamp,"unlimitedPaging": "false","sortDirection": "asc","sortColumn": "price","shape": "RD","minPrice": end_price,"minCarat": 0.49,"maxCarat": 0.79,"minCut": "Ideal","maxCut": "Astor Ideal","minColor": "I","maxColor": "D","minClarity": "SI1","maxClarity": "FL","minFluorescence": "Faint","maxFluorescence": None,"maxDateType": "MANUFACTURING_NOT_REQUIRED","isQuickShip": "false","bestValueSort": "false","hasVisualization": "false","isFiltersExpanded": "true","astorFilterActive": "false","country": "CHN","language": "zh-Hans","currency": "CNY","productSet": "BNCN"}url = 'https://www.bluenile.com/api/public/diamond-search-grid/v2?'response = requests.post(url, headers=headers, data=data)content = response.json()diamond_list = content["results"]# print(diamond_list[0])for diamond in diamond_list:girdle = diamond['girdle'][0]  # 腰身price = diamond['price'][0][4:]  # 价格color = diamond['color'][0]  # 颜色sku = diamond['skus'][0]fluorescence = diamond['fluorescence'][0]  # 荧光carat = diamond['carat'][0]  # 克拉数clarity = diamond['clarity'][0]  # 净度cut = diamond['cut'][0]['label']  # 切工if girdle.endswith('Faceted'):count_num += 1print("----------------------------","*****第{}颗*****".format(count_num),sku,"克拉数:{}".format(carat),"颜色:{}".format(color),"价格:{}".format(price),"荧光:{}".format(fluorescence),"净度:{}".format(clarity),"切工:{}".format(cut),"----------------------------",sep='\n')# 文件存储with open('bluenile.csv', 'a', encoding='utf-8-sig') as fp:s = f'{count_num},{sku},{carat},{color},{price},{fluorescence},{clarity},{cut}\n'fp.write(s)end_price = price.replace(',', '')exclude = 500 * countprint('已扫完{}颗,现在最高价格为:{}'.format(exclude, end_price))count += 1time.sleep(10)

输出结果如下所示:

… … … … … … … … … … … …
第1颗
LD16821489
克拉数:0.49
颜色:H
价格:11,418.65
荧光:无
净度:SI1
切工:理想
… … … … … … … … … … … …
已扫完500颗,现在最高价格为:11567.81

通过Excel选出喜欢的并进行标记,再将标记得编号,写成代码,把GIA证书进行下载,逐个对比GIA正证书的参数

import requests
import ioli = ["LD16035818", "LD16887180", "LD17615365", "LD16451860", "LD18785995", "LD15844901", "LD18483769", "LD15517006"]for b in li:pdf_url = f'https://bnsec.bluenile.com/bnsecure/certs/{b}/GIA?country=CHN&language=zh-Hans'send_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36","Connection": "keep-alive","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Language": "zh-CN,zh;q=0.8"}response = requests.get(pdf_url, headers=send_headers)bytes_io = io.BytesIO(response.content)# print(bytes_io)a = bytes_io.getvalue()# print(a)with open(f"{b}.PDF", mode='wb') as f:f.write(bytes_io.getvalue())print(f'编码{b}_GIA证书.PDF,下载成功!')

输出结果如下所示:

编码LD16035818_GIA证书.PDF,下载成功!
编码LD16887180_GIA证书.PDF,下载成功!
编码LD17615365_GIA证书.PDF,下载成功!

我在Blue Nile(蓝色尼罗河)上通过python爬取一百万颗钻石,最终选出心仪的一颗相关推荐

  1. 利用python爬取_在知乎上利用Python爬取了三百万数据!服务器崩了!企业级大项目...

    请各位注意: 以下所有分析结果都基于我抓取到的这300万用户的个人信息,非权威分析,仅供参考. 数据抓取时间为2017年7月份,用户数据会随着时间推移而变化,所以该报告具有一定时效性. 知乎的用户个人 ...

  2. python爬取电影评分_用Python爬取猫眼上的top100评分电影

    代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...

  3. qu.la网站上的小说爬取

    qu.la网站上的小说爬取 ##这个项目是我最早开始写的爬虫项目,代码比较简陋 在写这个项目时,我还不会Python的协程编程,用协程可提升爬虫速度至少5倍,参考我的文章[线程,协程对比和Python ...

  4. python 下载网页文件_『如何用python把网页上的文本内容保存下来』python爬取网页内容教程...

    python爬虫:如何爬网页数据并将其放在文本 用requests库 r=r.requests.get(url) r.concent 保存到文件里就行了 如何用python把网页上的文本内容保存下来 ...

  5. steam夏日促销用Python爬取排行榜上的游戏打折信息

    不知不觉,一年一度如火如荼的 steam 夏日促销悄然开始了.每年通过大大小小的促销,我的游戏库里已经堆积满还未下载过的游戏.但所谓"买到就是赚到,G胖一定大亏"的想法日渐流行,指 ...

  6. steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息

    前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我给大 ...

  7. 阿凡达时隔十年重映,王者归来还是炒冷饭?Python爬取上千条评论并分析

    [CSDN 编者按]<阿凡达>十年后再次重映,果不其然话题量十足,可能这就是神级影片的召唤力吧.在怀旧的氛围中,我们得以重新审阅这部曾经的现象级.划时代的作品. 作者 | 刘早起      ...

  8. 爬虫实战2(上):爬取豆瓣影评

       这次我们将主要尝试利用python+requsets模拟登录豆瓣爬取复仇者联盟4影评,首先让我们了解一些模拟登录相关知识补充.本文结构如下: request模块介绍与安装 get与post方式介 ...

  9. 利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息

    新增:国外疫情网站介绍 已更新:爬取国外疫情数据 已更新:新型肺炎历史数据下载 2020年3月27日补充: 制作了一个全球肺炎数据查询下载网站,效果如下: 访问地址:http://119.3.227. ...

最新文章

  1. Gold Code,Gold Sequence
  2. 手机qq2008触屏版_天猫精灵 CC10 电池版体验:只卖 799 元的平板电脑,比 iPad 更适合老人小孩...
  3. Linux系统安全及应用(账号控制、su、sudo、开关机安全控制、终端登录安全控制等)
  4. SAP Spartacus FeaturesConfig
  5. 幻世机器人_2014年科幻动作《幻世追踪/启动机械码》BD中英双字幕
  6. eval函数pythonmopn_python3中的 eval函数
  7. JUC:ConcurrentSkipListMap/ConcurrentSkipListSet(并发容器)
  8. 串口 接收端_嵌入式系统串口传输int float型数据的处理
  9. 发现一款好用的备份新浪博客的工具
  10. 双向板受力特点_弹性减震球形钢支座/双向弹簧铰支座特性
  11. Atitit 数据库视图与表的wrap与层级查询规范
  12. python进行数值模拟代码_数值模拟方法
  13. android加载obj文件,android – 从SD卡Rajawali解析.obj模型
  14. 第六章:组合数据类型练习[人名独特性统计]学习思考
  15. 数据时代的来临,大数据价值主要体现在哪几个方面?
  16. 机器学习实战-手写识别系统
  17. 整理各种模板(准备随时弃坑)
  18. 假设检验2_t分布的应用
  19. 本世纪最好的NSA!
  20. Android下拉刷新和上拉加载更多

热门文章

  1. 七夕了,男朋友说他想学学算法~
  2. vb.net 教程 7-1 本地网络信息的获取 3 网络连接信息
  3. 哈工大2022年春季学期计算机系统大作业——程序人生
  4. Fabric v2.3测试网络 - 创建通道 返回结果分析
  5. Studio用布局编辑器设计UI界面
  6. 探索语句和表达式的本质
  7. 【AI绘画】二次元小姐姐生成!春节版!
  8. 沉船会有什么_泰坦尼克号沉船之谜
  9. sqlplus报错ORA-12547: TNS:lost contact解决
  10. excel合并多个表格的快速操作