Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

技术Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析这期内容当中小编将会给大家带来有关Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大

本期,边肖将给大家带来一个Python爬行嘉园数据能否证明其不可靠的实例分析。文章内容丰富,从专业角度进行分析和叙述。看完这篇文章,希望你能有所收获。

10-10: 10今天看到一个关于“在嘉园找对象靠谱吗?】,其中关注人数1903人,被浏览次数1940753次,355个答案大部分不靠谱。用Python爬嘉园的数据能证明不靠谱吗?

Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

我翻了几页,找到了一个search_v2.php的链接,它的返回值是一个不规则的json字符串,里面包括昵称、性别、婚姻、匹配条件等等。

Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

通过获取url参数,总计240116捕获了10,000页数据。

Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

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

#coding:utf-8

导入csv

importjson

导入请求

from openpyxl . cell . cellimportillegal _ CHARACTERS _ RE

进口

line_index=0

deffetchURL(url):

标题={ 0

接受' :'*/*,

用户代理' : ' Mozilla/5.0(windowsnt 10.0;Win64x64)applebwebkit/537.36(KHTML,likeGecko)Chrome/86 . 0 . 4240 . 75 safari/537.36 ',

cookie ' : ' guider _ quick _ search=on;accessID=20201021004216238222PHPSESID=11117 cc 60 F4 dcafd 131 b 69d 542987 a 46;is _ search v2=1;SESSION _ HASH=8f 93 eeb 87 a 87 af 01198 f 418 aa 59 bccad9 DBE 5c 13;user _ access=1;Qs _ lvt _ 336351=1603457224QS _ PV _ 336351=4391272815204901400,304352944961503700 '

}

r=requests.get(url,headers=headers)

r.raise_for_status()

returnr.text.encode('gbk ',' ignore ')。解码(' gbk ','忽略')

defpareshtml(html):

html=html.replace('\\ ','')

html=INCLUDE _ CHARTERS _ RE . sub(r ' ',html)

s=json.loads(html,strict=False)

全局线索引

userInfo=[]

sp;  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页数据

Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

111页数据

Python爬取世纪佳缘的数据是否能证明它不靠谱的示例分析

过滤重复后的数据只剩下 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爬取世纪佳缘的数据是否能证明它不靠谱的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49724.html

(0)

相关推荐

  • 香港站群服务器更适合部署哪些业务香港服务器哪家好

    技术香港站群服务器更适合部署哪些业务香港服务器哪家好最近不少客户都来咨询香港多IP服务器、香港站群服务器的问题,对于站群服务器,有些用户还是不是太了解,下面USA-IDC就来简单介绍以下香港站群服务器更适合部署哪些业务以

    礼包 2021年10月22日
  • vue中自定义一个全局指令(vue什么情况使用自定义指令)

    技术vue中有哪些自定义指令这篇文章主要介绍“vue中有哪些自定义指令”,在日常操作中,相信很多人在vue中有哪些自定义指令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中有哪些自定

    攻略 2021年12月16日
  • 如何理解MYSQL中的SHOW VARIABLES语句

    技术如何理解MYSQL中的SHOW VARIABLES语句这篇文章将为大家详细讲解有关如何理解MYSQL中的SHOW VARIABLES语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知

    攻略 2021年11月23日
  • 怎么让awk使用 Shell 变量

    技术怎么让awk使用 Shell 变量这篇文章给大家分享的是有关怎么让awk使用 Shell 变量的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。有两种可能的方法可以让 awk 使用 shell

    攻略 2021年10月26日
  • Java学习之Java面试题

    技术Java学习之Java面试题 Java学习之Java面试题千锋重庆Java的小编为大家整理了部分中级Java软件开发面试题以供大家参考:1.谈谈对面向对象的理解;以及三大特征;
    面向对象是基于万物皆

    礼包 2021年11月29日
  • MYSQL中基础知识有哪些

    技术MYSQL中基础知识有哪些这篇文章主要介绍了MYSQL中基础知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、基础概念与基础命令1)基础概念

    攻略 2021年10月31日