(一)

早晨 7 点,两路口。小痴在清晨的梦中被闹钟叫醒。

他关掉闹钟,翻起身,来到洗漱台,对着镜子,不经意扬起了嘴巴,微笑起来。

(二)

小痴,全名陈小痴,是一名程序员。

小痴人如其名,长相清秀,痴迷于编程。人生的座右铭「人必有痴,而后有成」。小痴非常注重自身的穿着,平常虽然穿的不时尚,但却给人很舒服的感觉。

(三)

在简单的洗漱完之后,小痴穿上了带着公司 logo 的 T 恤,把笔记本放进小米电脑包,步行来到两路口轻轨站。

二号线正值早高峰,人潮汹涌。但小痴早已习惯,不慌不忙的买了早餐,豆浆配馒头。随后坐上了两路口的轻轨,手机看着「stromzhang」的文章,向着江北方向驶去。

(四)

小痴如今已是一位技术组的领导,带领着自己的团队。他主导 android 版的 APP,从原本日活几百到如今日活几万,给公司带来非常多的利润。这样的壮举让小痴名声大噪,受到领导的赏识,在公司里得到很多人的尊重。但最近小痴看起来非常的不开心。

(五)

平时海哥和小痴关系非常好,小海最先发现这个情况。在一次周末,海哥约小痴出来喝酒。随后海哥问到:“痴哥最近有心事吗?”小痴把眼前的啤酒一口闷下,随后说到:“哎,也没什么大事,就是家里人看我年龄大了,一直叫我去相亲。你说我年轻时是多么潇洒,如今就只能去相亲,寻找我的爱情吗?”小痴说完,又喝了一大口啤酒。

(六)

海哥随忙说道:“痴哥你最近可把我吓坏了,我还以为是什么事,让你最近如此心神不定。以痴哥英俊的长相,还要去相亲?在说现在谁还找媒婆相亲啊,如今相亲网站多的去了,比如最近很火的「我主良缘」。这个网站,还可以根据你想要的条件,来筛选自己心仪的对象。比如按痴哥这个条件来,对方身高至少要 170 吧,教育程度本科,月薪 5000,最好是在北京,因为痴哥马上要去北京发展。对象对于痴哥来说不是个事。以后痴哥在北京发展,可要带带小弟我啊”

果然还是海哥最了解小痴,这一番话让小痴心情好了许多,开心的跟着海哥喝着酒。回到家中,小痴就利用 Python 默默的爬取「我主良缘」。

Requests 库爬取「我主良缘」网站

今天的程序就是利用 requests 库进行「我主良缘」网站的爬取。我的代码是利用 requests 库进行网站的抓取,在利用 mongo 数据库进行数据的保存。大家可以对着两个版本的代码进行学习。

程序抓取结果

运行程序会把网站上,对应的交友信息抓取下来,保存到 mongodb 数据库中。并单独把图片保存到本地的 images2 文件夹中。

程序结构

程序逻辑

利用 requests 库对目标站点进行数据的抓取。

在对抓取的数据进行处理,筛选出自己想要的数据信息。

最后保存相应的数据信息到数据库中。

数据请求

'''
解析网站
'''
def get_one(page, startage, endage, gender, startheight, endheight, salary):# 设置请求头headers = {'Referer': 'http://www.lovewzly.com/jiaoyou.html','User - Agent': 'Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 66.0.3359.170Safari / 537.36'}# 设置请求参数params = {# 页数'page':page,# 起始年龄'startage': startage,# 截止年龄'endage':endage,# 性别'gender':gender,# 所在城市的编号'cityid':'52',# 起始身高'startheight':startheight,# 终止身高'endheight':endheight,# 是否结婚'marry':'1',# 教育水平'educatin':'40',# 工资薪水'salary':salary}# 网站链接base_url = 'http://www.lovewzly.com/api/user/pc/list/search?'# 拼接请求参数url = base_url + urlencode(params)# 调试信息print(url)while True:try:# 利用 requests 库请求目标地址response = requests.get(url, headers=headers)# 判断请求的结果是否有效if response.status_code == 200:# 返回 json 数据return response.json()except ConnectionError:return None复制代码

字段提取

'''
# 解析数据
def get_person(json):# 判断 json 是否为空if json:# 获取 data 数据data = json.get('data').get('list')else:# 输出错误信息print('没有符合你的条件')if data:# 循环遍历 data 数据,重新构造新的字典for person in data:yield {# 用户 id'userid':person.get('userid'),# 用户名'username': person.get('username'),# 性别'gender': person.get('gender'),# 出现日期'birthdayyear': person.get('birthdayyear'),# 身高'height': person.get('height'),# 省份'province': person.get('province'),# 教育程度'education': person.get('education'),# 签名'monolog': person.get('monolog'),# 图片'avatar':person.get('avatar')}复制代码

数据库存放

'''
保存数据到 monogo 数据库
'''
def save_to_monogo(result):try:# 判断保存是否成功if db[MONGO_TABLE].insert(result):# 保存成功输入相应信息print('存储到 MONGODB 成功', result)except Exception:# 保存失败输出相应信息print('存储到 MONGODB 失败', result)复制代码

完整代码已上传到 Github 上,关注公众号「痴海」,回复「python对象」即可获取。感兴趣的同学可以自行下载查看,公众号所有的代码也都会保存到这个项目里,不妨给个 star。

在写完代码以后,我还去搜索下帝都的男生。搜索条件是:身高 180,年龄 25,月薪 1.5W。然后就得到这样的结果。

果然男生相对来说打扮比较普通,还是妹子的好看些。更多有趣的内容,可以自己运行代码,看看你的心仪的对象都会有哪些。

公众号「痴海」,每天分享 Python 干货

论如何利用 Python 优雅的找对象相关推荐

  1. python猪脸识别_如何利用大数据来找对象?

    共113条回复 最后由鹿鼎记肯定回复于2020-12-22 21:12 #114鹿鼎记肯定回复于2020-12-22 21:12:11 各自训练自己的 我拿你们的微调~~ 0 #113wangwei8 ...

  2. 在线可视化python网站_利用Python优雅地可视化数据

    作者:刘潇龙 最近看<机器学习系统设计>...前两章.学到了一些用 Matplotlib 进行数据可视化的方法.在这里整理一下. 声明:由于本文的代码大部分是参考书中的例子,所以不提供完整 ...

  3. 利用Python进行数据分析 学习笔记

    import os os.getcwd() 获得工作目录, 如使用相对路径,是相对于这个工作目录的路劲 import sys sys.path.append() 这个是增加引用,或引入文件的路径 In ...

  4. 找呀找呀找对象(Python查找算法汇总)

    是否还在为如此优秀的你还没有对象而愁掉了头发,是否还在依赖OOP来new出一个对象.其实这个世界缺少的不是对象,而是发现对象的眼睛.当然如此优秀的你也可能只是缺少时间. 本文简要分析4中查找算法,看看 ...

  5. 怎么用python找论文_如何利用Python绘制学术论文图表方法

    论文中图表形式多样,常用的处理工具有excel.MATLAB以及Python等,excel自处理的方法有两个缺陷: 1.当数据较多时,容易出现excel"翻白眼"的现象: 2.需要 ...

  6. python是一种面向对象的高级语言_爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...

    今天在知乎上看到一个关于[世纪佳缘找对象靠谱吗?]的讨论,其中关注的人有 1903,被浏览了 1940753 次,355 个回答中大多数都是不靠谱.用 Python 爬取世纪佳缘的数据是否能证明它的不 ...

  7. linux 端口tnpl,利用Python找出9个连续的空闲端口

    这篇文章主要介绍了Python找出9个连续的空闲端口的方法,感兴趣的小伙伴们可以参考一下 一.项目需求 安装某软件,配置时候需要填写空闲的端口.查看5个平台的某个端口是否被占用 5个平台为window ...

  8. 用python找对象_还在单身的你 Python教你如何脱单

    程序员有女朋友?new一个就行. Python只要内存够,想new多少个对象都不是问题. 由于行业环境的原因,程序员单身的确实多,这也是程序员的世纪难题. 今天,不是给大家发对象,只教大家方法.今天教 ...

  9. 如何利用python语言实现对象数组

    1 Java代码示例 //定义一个类 class Triple {int user;int item;double rating; } //声明对象数组 Triple[] dataset = new ...

最新文章

  1. Play Framework 2.5 整合 MyBatis
  2. 一款让你轻松在IDEA画图的插件!
  3. CentOS系统代理配置
  4. 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
  5. 第83天:jQuery中操作form表单
  6. ping 不通 华为三层交换机vlan_华为三层交换机如何让VLAN间不能互通配置精编版...
  7. 【测试设计】基于正交法的测试用例设计工具--PICT
  8. Python数据结构与算法(一)--算法和时间复杂度
  9. 区域显示触发_Nature Communications:地幔数据显示可氧化的火山气体的减少可能触发了大氧化事件...
  10. 架构师需要懂的环境配置标准化
  11. 有关线程安全的概念范畴
  12. 徐明星斥资超4亿香港买壳:史玉柱女儿现身股东行列
  13. STL源码剖析-map
  14. Visual Studio Team Architect团队的敏捷开发 (第三部分)
  15. 剑指offer--两个链表的第一个公共结点
  16. 跟小静学MVC3[03]--相关语法特性小补习
  17. 爬虫:爬取微软必应翻译做成API
  18. 音视频转码ffmpeg(十六)
  19. 基于stm32 ESP8266WiFi模块的基本通信
  20. 机器视觉实用工具集NO.15——利用图像放射变换做类似文件扫描仪效果工具

热门文章

  1. 快速求数组的中值(不是中间序号的值)
  2. qdialog 返回值_QDialog 窗口级别模态(续)
  3. TS之类的继承与super
  4. IOS闪退日志抓取及日志解析(记录更新ing)
  5. 移动验证:本机校验和一键登录(中移动、中联通、中电信提供)
  6. h5进行手机录像传给后端base64格式
  7. Linux中nmcli命令详解
  8. 让chatgpt给我做个项目预算,感觉这样的项目预算才有的赚
  9. BPR算法实战:基于BPR算法实现个性化商品推荐 代码+数据
  10. 解释器模式 拾人牙慧