今天在知乎上看到乙個關於【世紀佳緣找物件靠譜嗎?】的討論,其中關注的人有 1903,被瀏覽了 1940753 次,355 個回答中大多數都是不靠譜。用 python 爬取世紀佳緣的資料是否能證明它的不靠譜?
在 pc 端開啟世紀佳緣**,搜尋 20 到 30 歲、不限地區的女朋友
翻了幾頁找到乙個 search_v2.php 的鏈結,它的返回值是乙個不規則的 json 串,其中包含了暱稱、性別、是否婚配、匹配條件等等
點開 hearders 拉到最下面,在它的引數中 *** 是性別、stc 是年齡、p 是分頁、liststyle 是有**
通過 url + 引數的 get 方式,抓取了 10000 頁的資料總共 240116
需要安裝的模組有 openpyxl,用於過濾特殊的字元
# coding:utf-8
import csv
import json
#2020最新python學習資源分享:1156465813
import requests
from openpyxl.cell.cell import illegal_characters_re
import re
line_index = 0
def fetchurl(url):
headers =
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',' '))
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 = '' + 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:
print(len(filter))
世紀佳緣的資料告訴我們網上交友需謹慎。用好 python 走遍網路都不怕。各位程式設計師同志要當心了啊
在這裡還是要推薦下我自己建的python開發學習群:1156465813,群裡都是學python開發的,如果你正在學習python ,歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有python軟體開發相關的),包括我自己整理的乙份2020最新的python高階資料和高階開發教程,歡迎高階中和進想深入python的小夥伴!
python爬蟲 用xpath爬豆瓣電影
步驟 將目標 下的頁面抓取下來 將抓取下來的資料根據一定規則進行提取 具體流程 將目標 下的頁面抓取下來 1.倒庫 import requests2.頭資訊 有時候可不寫 4.返回響應 response requests.get url,headers headers 響應 print respon...
爬蟲入門(一) 用Python爬取靜態HTML網頁
系統環境 作業系統 windows10 專業版 64bit python anaconda2 python2.7 python packages requests beautifulsoup os新手入門爬蟲時一般都會先從靜態html網頁下手,並且爬取html網頁不難,容易上手。遇到沒見過函式可以找...
用python寫網路爬蟲 爬取新浪微博評論
首先微博的站點有四個,pc 端weibo.com weibo.cn以及移動端m.weibo.com 無法在電腦上瀏覽 在網上大致瀏覽了一下,普遍都認為移動端爬取比較容易,故選擇移動端進行爬取。登陸m.weibo.cn之後,找到指定微博,例如如下微博 detail 4493649780161355 找...