<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          世紀(jì)佳緣水分有多大?

          共 2655字,需瀏覽 6分鐘

           ·

          2020-11-07 02:42

          文 |?某某白米飯

          來源 |?Python 技術(shù)

          今天在知乎上看到一個(gè)關(guān)于【世紀(jì)佳緣找對象靠譜嗎?】的討論,其中關(guān)注的人有 1903,被瀏覽了 1940753 次,355 個(gè)回答中大多數(shù)都是不靠譜。用 Python 爬取世紀(jì)佳緣的數(shù)據(jù)是否能證明它的不靠譜?

          一、數(shù)據(jù)抓取

          在 PC 端打開世紀(jì)佳緣網(wǎng)站,搜索 20 到 30 歲、不限地區(qū)的女朋友

          翻了幾頁找到一個(gè) search_v2.php 的鏈接,它的返回值是一個(gè)不規(guī)則的 json 串,其中包含了昵稱、性別、是否婚配、匹配條件等等

          點(diǎn)開 Hearders 拉到最下面,在它的參數(shù)中 sex 是性別、stc 是年齡、p 是分頁、listStyle 是有照片

          通過 url + 參數(shù)的 get 方式,抓取了 10000 頁的數(shù)據(jù)總共 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)


          二、去重

          在處理數(shù)據(jù)去掉重復(fù)的時(shí)候發(fā)現(xiàn)有好多重復(fù)的,還以為是代碼寫的有問題呢,查了好久的 bug 最后才發(fā)現(xiàn)網(wǎng)站在 100 頁只有的數(shù)據(jù)有好多重復(fù)的,下面兩個(gè)圖分別是 110 頁數(shù)據(jù)和 111 頁數(shù)據(jù),是不是有很多熟面孔。

          110 頁數(shù)據(jù)

          111 頁數(shù)據(jù)

          過濾重復(fù)后的數(shù)據(jù)只剩下 1872 了,這個(gè)水分還真大

          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))

          源碼:https://github.com/JustDoPython/python-examples/tree/master/moumoubaimifan/sjjy


          總結(jié)

          數(shù)量水分都如此之大,其他的還能相信嘛?

          交友需謹(jǐn)慎,用好 Python 走遍網(wǎng)絡(luò)都不怕。

          瀏覽 29
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  西欧超碰在线 | 国产精品久草 | 日本色情视频在线播放 | 精品无码产区一二 | h片在线观看 |