本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章一级Python技术 ,作者派森酱

刚接触Python的新手、小白,可以复制下面的链接去免费观看Python的基础入门教学视频

https://v.douyu.com/author/y6AZ4jn9jwKW

前言

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

一,数据抓取

在PC端打开世纪佳缘网站,搜索20到30岁,不限地区的女朋友

翻了几页找到一个search_v2.php的链接,它的返回值是一个不规则的json串,其中包含了昵称,性别,是否婚配,匹配条件等等

点开Hearders拉到最下面,在它的参数中sex是性别,stc是年龄,p是分页,listStyle是有照片

通过url +参数的get方式,抓取了10000页的数据总计240116

需要安装的模块有openpyxl,用于过滤特殊的字符

# coding:utf-8
import csv
import jsonimport requests
from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
import reline_index = 0def fetchURL(url):headers = {'accept': '*/*','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36','Cookie': 'guider_quick_search=on; accessID=20201021004216238222; PHPSESSID=11117cc60f4dcafd131b69d542987a46; is_searchv2=1; SESSION_HASH=8f93eeb87a87af01198f418aa59bccad9dbe5c13; user_access=1; Qs_lvt_336351=1603457224; Qs_pv_336351=4391272815204901400%2C3043552944961503700'}r = requests.get(url, headers=headers)r.raise_for_status()return r.text.encode("gbk", 'ignore').decode("gbk", "ignore")def parseHtml(html):html = html.replace('\\', '')html = ILLEGAL_CHARACTERS_RE.sub(r'', html)s = json.loads(html,strict=False)global line_indexuserInfo = []for key in s['userInfo']:line_index = line_index + 1a = (key['uid'],key['nickname'],key['age'],key['work_location'],key['height'],key['education'],key['matchCondition'],key['marriage'],key['shortnote'].replace('\n',' '))userInfo.append(a)with open('sjjy.csv', 'a', newline='') as f:writer = csv.writer(f)writer.writerows(userInfo)if __name__ == '__main__':for i in range(1, 10000):url = 'http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=23:1,2:20.30&sn=default&sv=1&p=' + str(i) + '&f=select&listStyle=bigPhoto'html = fetchURL(url)print(str(i) + '页' + str(len(html)) + '*********' * 20)parseHtml(html)

二,去重

在处理数据去掉重复的时候发现有好多重复的,还以为是代码写的有问题呢,查了好久的bug最后才发现网站在100页上只有数据有好多重复的,下面两个图分别是110页数据和111页数据,是不是有很多熟面孔。

110页数据

111页数据

过滤重复后的数据只剩下 1872 了,这个水分还真大

def filterData():filter = []csv_reader = csv.reader(open("sjjy.csv", encoding='gbk'))i = 0for row in csv_reader:i = i + 1print('正在处理:' + str(i) + '行')if row[0] not in filter:filter.append(row[0])print(len(filter))

Python爬取世纪佳缘的数据,是否能证明它的不靠谱?相关推荐

  1. 2019年脱单攻略|用Python爬取世纪佳缘美女照片,实现颜值评分

    "关爱单身程序猿,人人有责" 周末,程序员小明一大早给我发来消息说想找一个女朋友. | 数据探索 于是.... 我登陆了他的账号,摸索着浏览了这个网站 我准备把符合条件的小姐姐的头 ...

  2. node爬虫实践:爬取世纪佳缘交友信息

    自从node这一运行在服务端的 JavaScript横空出世以后,赋予了前端开发工程师强大的力量.文件I/O操作,连数据库写接口接口等等.我在刚开始学习的node的时候,尝试着爬了一个比较小的相亲网站 ...

  3. python多线程爬取世纪佳缘女生资料并简单数据分析

    一. 目标 ​ 作为一只万年单身狗,一直很好奇女生找对象的时候都在想啥呢,这事也不好意思直接问身边的女生,不然别人还以为你要跟她表白啥的,况且工科出身的自己本来接触的女生就少,即使是挨个问遍,样本量也 ...

  4. 用selenium 爬取世纪佳缘信息

    仅供参考,以学习为主 一.用selenium获取用户的个人连接地址,并保存到excel中 脚本名:url.py import requests from bs4 import BeautifulSou ...

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

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

  6. 爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?

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

  7. 爬了世纪佳缘后发现了一个秘密

    文 | 某某白米饭 来源:Python 技术「ID: pythonall」 今天在知乎上看到一个关于[世纪佳缘找对象靠谱吗?]的讨论,其中关注的人有 1903,被浏览了 1940753 次,355 个 ...

  8. 练习:使用Python爬取COVID-19疫情国内当日数据

    练习:使用Python爬取COVID-19疫情国内当日数据 推荐公众号:数据酷客 (里面有超详细的教程) 代码来源数据酷客公众号教程 URL它是Uniform Resource Locator的缩写, ...

  9. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  10. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据

    原标题:学好Python爬取京东知乎价值数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这 ...

最新文章

  1. session存储在redis/memcache/mysql
  2. 计算机高校应用现状的参考文献,【计算机应用论文】高校计算机实验室管理思考探索(共4094字)...
  3. win10常见问题处理办法
  4. 哈,我再xp Professional上安装SqlServer2005桌面管理器
  5. 前景检测算法(十四)--SuBSENSE算法
  6. 人大副教授从细节上教你如何快速进行研究生早期的科研之路
  7. 记一次物理服务器Linux系统中未找到网卡的处理方式
  8. 【NumPy基础】100道numpy练习——初学与入门篇
  9. selenium启动chrome时Proxy server需要验证用户
  10. B2C电商系统源码 在线商城源码
  11. API在公司全业务快速使用给信息安全带来了巨大挑战
  12. NRF52840开发注意
  13. 【通信原理 入坑之路】—— 深入理解奈奎斯特第一准则与码间串扰
  14. linux和windows截图软件下载,【教程】数字菌教你从windows过渡到linux之软件的替换...
  15. torch.optim.Adam优化
  16. vue 停止页面滚动_Vue关于滚动停止的监听方法
  17. 2020java开发面试题
  18. 重装 Mac 系统后的安装软件和个人配置[个人习惯]
  19. IPv6的HappyEyeballs算法
  20. python import turtle as t_turtle库的学习笔记(python)

热门文章

  1. 基于Matlab的泊松亮斑仿真及其应用
  2. Java并发04:Thread的基本方法(1)-Name、ThreadGroup、activeCount、isAlive、守护线程等
  3. 次时代最强主机PS5发布,我们是不是离“黑镜”又近了一步?
  4. DS200TCQCG1BJG - 电路板(RST)溢出
  5. 青年教师大讲堂 计算机,东风22小学青年教师登上教师大讲堂
  6. 计算机等级考试四级 网络工程师 之 操作系统原理2 适合懒人备考哈哈哈
  7. 容器落地案例:TNO如何用容器搭建CI/CD与微服务架构
  8. VUE中的事件处理及表单处理
  9. 无线攻防:破解WEP密钥
  10. 神奇又准确的梦境,是迷信还是拥有未卜先知的特异功能