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

来源:Python 技术「ID: pythonall」

今天在知乎上看到一个关于【世纪佳缘找对象靠谱吗?】的讨论,其中关注的人有 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 json

import requests
from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
import re

line_index = 0

def 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_index

userInfo = []
    for key in s['userInfo']:
        line_index = line_index + 1
        a = (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 = 0
    for row in csv_reader:
        i = i + 1
        print('正在处理:' + str(i) + '行')
        if row[0] not in filter:
            filter.append(row[0])
    print(len(filter))

总结

世纪佳缘的数据告诉我们网上交友需谨慎。用好 Python 走遍网络都不怕。

(0)

相关推荐

  • Python爬取淘数据平台商品数据,发现假发的市场原来那么火

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 最近发现了一个不错的数据网站,叫"淘数据".里面的数据都是淘宝的商家数据 ...

  • 如何将html中的表格数据保存下来

    有时候我们想爬的数据是表格样式,(网页好丑,大家将就一下)如下图.好消息是在页面html中能找到对应的数据 但坏消息是虽然数据存在于网页内部,没有可用来获取原始数据的API. 所以,现在你必须花费精力 ...

  • httprunner学习28-yaml文件 参数化读取 csv 文件字符串转 int

    前言 使用 httprunner 框架参数化时,一般参数数据放csv文件,csv 文件默认都是字符串类型,有些接口需传 int 类型的数字. 当读取csv文件的数据后,需进行数据转换,参考前面一篇ht ...

  • pytest文档43-元数据使用(pytest-metadata)

    前言 什么是元数据?元数据是关于数据的描述,存储着关于数据的信息,为人们更方便地检索信息提供了帮助. pytest 框架里面的元数据可以使用 pytest-metadata 插件实现.文档地址http ...

  • 如何批量采集网页表格数据?

    Comming Soon! Python&Stata数据分析课寒假工作坊 我们最想要的数据格式就是表数据,但这表格并不是excel文件,而是存在于网页上的表数据.比如本教程实验网站 http: ...

  • 离异单身的我,说说我在世纪佳缘线下实体店遭遇

    世纪佳缘VIP服务让我们有了共同的交集,开始了美好的爱情,我喜欢曾先生对我的在意和体贴,喜欢他对我的每句唠叨.我今年 35 岁,是一名牙科医生.平时工作比较忙,接触的圈子小,所以一直没有找到合适的另一 ...

  • 作为经理的我诉说下“世纪佳缘VIP服务”是一种怎样的体验

    感情不是靠等来的,而是要自己努力抓住机会去寻找,我感谢世纪佳缘线下实体店VIP服务给了我机会让我找到了我的意中人. 当然在感情相处中我们一定培养自己的闪光点把对方吸引过来,让自己变得独一无二,才会被人 ...

  • 为什么微信和陌陌没能干掉世纪佳缘?

    世纪佳缘和百合网合并了.作为前佳缘的员工,大叔看了一些对此事的点评文章,谈谈自己的看法. 先简单回顾一下事情经过. 国内私募推动了中概股公司私有化的复活,在这个私有化浪潮中,中国最大的在线婚恋交友平台 ...

  • 世纪佳缘线下门店靠谱想说爱情慢下来,结局更美好

    一份好的感情是两个人可以共同成长,感情得到质的升华.努力把自己变得更优秀,这样才能加速与心目中的他不期而遇.莉莉很开心在世纪佳缘平台遇见了未来一起成长的徐先生. 生活中经常有一些人怕年纪大了怕遇不到适 ...

  • 世纪佳缘一对一服务让我学会把琐碎的日子过成诗

    在网上看到不少女人说:两个人白天是夫妻,晚上是邻居,把婚姻过成了合租-- 是不是婚姻走到最后都会变成将就凑和?我想不一定吧,还是要看人. 跟老公在在一起三年结婚两年,依旧还是很甜蜜.想当初我们还是通过 ...

  • 世纪佳缘一对一服务让我找到了一个愿意倾听我说话的爱人

    在网上看到不少女人说:两个人白天是夫妻,晚上是邻居,把婚姻过成了合租-- 是不是婚姻走到最后都会变成将就凑和?我想不一定吧,还是要看人. 跟老公在在一起三年结婚两年,依旧还是很甜蜜.想当初我们还是通过 ...

  • 4487.我在《世纪佳缘》的自我介绍

    4487.我在<世纪佳缘>的自我介绍 2021.7.1 本人王东镇干部子弟,是被开除了党籍公职的战士和学者,依靠"低保"和参战补贴.廉租房补贴生活的"贪官&q ...

  • 白帽子提交世纪佳缘漏洞后已被抓3个月 拷问网络安全边界

    雷帝网 雷建平 7月5日报道 谁也没有想到,在乌云网提交关于世纪佳缘的漏洞,会引发一个白帽子被捕.更让人意想不到的是,自称是白帽子实习生袁炜的父亲致第四届网络安全大会的公开信会引发舆论轩然大波. 这封 ...

  • 翟某的行为构成诈骗或者敲诈勒索吗?逼人自杀犯法吗?世纪佳缘负有责任吗?

    原创王俊 没药花园 前天 收录于话题 #国内大案81 #法律科普5 大家好,在上篇中,法律工作者王俊回顾了整个案件经过,可点击:千万协议,40天婚姻和纵身一跃. 在留言中,许多人问,苏享茂家属是否有采 ...