Python爬取幾千條相親文案
前言:
前不久,我刷到這樣一條短視頻,“1.7億的90后僅有約1000萬(wàn)對(duì)結(jié)婚,結(jié)婚率不到10%”,當(dāng)然我們也無(wú)法查實(shí)當(dāng)中數(shù)據(jù)的來(lái)源以及真實(shí)性,不過(guò)小編倒是總能聽說(shuō)身邊的朋友在抱怨脫單難、找不到合適的對(duì)象。
今天我通過(guò)Python寫了一個(gè)簡(jiǎn)單的腳本在抓取公開的相親文案,看看在相親的都是些什么樣的人?他們的擇偶標(biāo)準(zhǔn)又是什么樣子的?什么樣子的人更加容易脫單?
1.代碼的編寫過(guò)程
我們引入需要用到的庫(kù),這里用到Python當(dāng)中的requests庫(kù)來(lái)發(fā)送和接受請(qǐng)求,通過(guò)正則表達(dá)式re這個(gè)庫(kù)來(lái)解析數(shù)據(jù)
import requests from tenacity import * import re import time
很多時(shí)候?qū)τ龅秸?qǐng)求超時(shí)的情況,因此當(dāng)出現(xiàn)一次錯(cuò)的時(shí)候,我們會(huì)多嘗試幾次,因此這里使用retry裝飾器來(lái)多次嘗試
@retry(stop=stop_after_attempt(5))
def do_requests(url):
response = requests.get(url, headers=headers, proxies=proxies, timeout=10)
return response.text
我們抓取的數(shù)據(jù)包括出生年份、身高/體重、學(xué)歷、收入、職業(yè)、自我介紹、擇偶標(biāo)準(zhǔn)、車房情況等等,都是通過(guò)正則表達(dá)式re庫(kù)來(lái)實(shí)現(xiàn)的,
date_of_birth = re.compile("<br/>①出生年月/星座(.*?)<br/>", re.M | re.S)
sex = re.compile("<br/>【基本資料】(.*?)<br/>")
height = re.compile("<br/>②身高/體重(.*?)<br/>")
education = re.compile("<br/>⑤學(xué)歷(.*?)<br/>")
jobs_1 = re.compile("<br/>⑥職業(yè)(.*?)<br/>")
income = re.compile("<br/>⑦月均收入(.*?)<br/>")
married = re.compile("<br/>⑨有無(wú)婚史(.*?)<br/>")
house_cars = re.compile("<br/>⑧車房情況(.*?)<br/>")
self_intro = re.compile("<br/>? 自我介紹(.*?)<br/>")
requirements = re.compile("<br/>【擇偶標(biāo)準(zhǔn)】<br/>(.*?)</a>")
family_member = re.compile("<br/>⑩家庭成員(.*?)<br/>")
2.結(jié)果的可視化展示
我們先來(lái)看一下性別比例,從分布來(lái)看,女生前來(lái)相親的比例更高,主要也是因?yàn)閿?shù)據(jù)源是來(lái)自北京、上海、杭州等大城市的相親介紹,大城市中似乎女生脫單更加困難一些,

我們?cè)賮?lái)看一下單身的女性的特征,首先她們的年齡主要集中在94、93以及95年左右,正好都是處在適婚的年齡

而她們的學(xué)歷,本科占到了絕大多數(shù),基本上都有本科的學(xué)歷,而大專的占比排在第二,碩士和博士處于少數(shù)

另外小編也對(duì)單身女性的星座做了一個(gè)統(tǒng)計(jì),發(fā)現(xiàn)處女座、天秤座以及射手座、白羊座的女性單身率略高一些

最后,我們來(lái)看一下她們的擇偶標(biāo)準(zhǔn)吧,小編將她們的擇偶標(biāo)準(zhǔn)單獨(dú)提取出來(lái),然后繪制成了詞云圖
review_list = []
reviews = get_cut_words("".join(df_girls["requirements"].astype(str).tolist()))
reviews_counter = Counter(reviews).most_common(200)
print(reviews_counter)
for review in reviews_counter:
review_list.append((" " + review[0] + " ") * review[1])
stylecloud.gen_stylecloud(text=" ".join(review_list), max_words=500, collocations=False,
font_path="KAITI.ttf", icon_name="fab fa-apple", size=653,
output_name="4.png")
最后呈現(xiàn)出來(lái)的樣子如下圖所示:

3.結(jié)論
可見(jiàn)相親市場(chǎng)上的女生,她們首先是希望男方是要有房有車的,其次要是男方之前存在婚史,女生會(huì)比較介意,然后要是有穩(wěn)定的工作、有能力有責(zé)任心,通常都會(huì)給女生留下比較好的印象,而至于外在條件上,大多數(shù)女生的回答則是身高在175-180左右,年齡在90-97年之間。
到此這篇關(guān)于Python爬取幾千條相親文案的文章就介紹到這了,更多相關(guān)Python爬取相親文案內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳談在flask中使用jsonify和json.dumps的區(qū)別
下面小編就為大家分享一篇詳談在flask中使用jsonify和json.dumps的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題
這篇文章主要介紹了解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
基于python的圖片修復(fù)程序(實(shí)現(xiàn)水印去除)
這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實(shí)現(xiàn)圖片中水印去除,主要利用的是OpenCV這個(gè)框架實(shí)現(xiàn)的,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧2018-06-06
對(duì)Python的Django框架中的項(xiàng)目進(jìn)行單元測(cè)試的方法
這篇文章主要介紹了對(duì)Python的Django框架中的項(xiàng)目進(jìn)行單元測(cè)試的方法,使用Django中的tests.py模塊可以輕松地檢測(cè)出一些常見(jiàn)錯(cuò)誤,需要的朋友可以參考下2016-04-04

