主頁 > 後端開發 > 爬蟲實戰:爬取相親網站,看看當下年輕小姐姐的擇偶觀。

爬蟲實戰:爬取相親網站,看看當下年輕小姐姐的擇偶觀。

2021-02-18 10:43:55 後端開發

前言
到了一定年齡,父母可能會催你找女朋友,結婚,
大多數的父母催婚,是父母漸漸老了,想讓你找個人照顧你,有熱飯吃,生病了有人照顧,在外面不被人欺負,
當然,也有一部分來自周圍人的壓力,跟你同齡的孩子差不多都結婚了,你父母的壓力自然就來了,跟父母給孩子報課外輔導班的心理一樣,
很多時候讓你成家立業,在父母看來,幫你完成成家的任務,父母的一大任務算是完成了,不然單身的男女每個家,在父母心里始終是個心結,這種心情,小城鎮特別的突出,
父母幫你完成了結婚的任務,不需要像以前那樣辛辛苦苦奔波賺錢了,
催婚,第一,是父母對你的關心,
第二,是父母的私心(雖然有時候這種私心是被動的私心)
第三,父母養育任務的完成,要開始享受生活了,

所以,今天作者就來爬取下交友網站,看看小姐姐的擇偶觀,
結合博主的年齡
所以博主的篩選條件是
重慶,年齡21-27歲,未婚小姐姐,
大姐姐們的擇偶觀我并不關心,
對技術不感興趣的,下拉到后面看結論,

技術部分

網站選取

世紀佳緣得到的資訊如圖,對擇偶條件未怎么提及,所以該網站放棄,

世紀佳緣爬取代碼

```python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu(余登武)
# @Date  : 2021/2/15
#@email:1344732766@qq.com
# -*- coding: utf-8 -*-

import requests
import json
import pandas as pd
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
def get_page(url):#獲取請求并回傳決議頁面,
    '''
       引數:
           url :目標網頁的 url
       回傳:目標網頁的 html 內容
       '''
    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
        'Cookie': 'guider_quick_search=on; SESSION_HASH=0ea6881596be6958acab86601f12c97fdc211b1d; jy_refer=www.baidu.com; accessID=20210215105936945652; user_access=1; Qs_lvt_336351=1613358012; _gscu_1380850711=133580687kjmry14; _gscbrs_1380850711=1; COMMON_HASH=03ccf3f907328da89142987423a9215b; stadate1=271766541; myloc=50%7C5001; myage=25; mysex=m; myuid=271766541; myincome=40; Qs_pv_336351=1107463009737048200%2C2408036345389375500%2C1494836557490850800%2C3408124253653422600%2C1396723355418865400; PHPSESSID=3699194bbb0a1fb7c7f3c46c813f162c; pop_avatar=1; PROFILE=272766541%3A%25E6%2580%25BB%25E8%25A3%2581%25E4%25BD%2599%3Am%3Aimages1.jyimg.com%2Fw4%2Fglobal%2Fi%3A0%3A%3A1%3Azwzp_m.jpg%3A1%3A1%3A50%3A10%3A3; main_search:272766541=%7C%7C%7C00; RAW_HASH=PBalPtMnGoSGsXuyDvb3BTznuvyG8MajCm%2AWrcDW%2Av1YkfseTjLUbLLCCHeQJ0B25bjAa%2Ak4IbveQI5X4uzQhvvD3qbP6ajy90MEyOpZDZzznTM.; is_searchv2=1; pop_1557218166=1613364302492; pop_time=1613363558012'
    }
    try:
        response = requests.get(url, headers=headers, timeout=10)
        response.encoding = 'unicode_escape'  # 加編碼,重要!轉換為字串編碼,read()得到的是byte格式的
        if response.status_code == 200:
            return response.text
    except ReadTimeout:  # 超時
        #get_page(url)#如果是這行則是遞回呼叫函式
        return None
    except ConnectionError:  # 網路問題
        #get_page(url)
        return None
    except RequestException:  # 其他問題
        #get_page(url)
        return None
#決議網頁

def pase_page(url):
    html = get_page(url)

    '''
       功能:嘗試決議其結構,獲取所需內容并保存進CSV

       '''
    if html is not None:
        html = str(html)
        s = json.loads(html,strict=False)  # ka添加引數 strict=False,否則會出現 錯誤資訊如json.decoder.JSONDecodeError: Invalid control character at: line 1 column 4007 (char 4006)

        usrinfolist = []  # 存放一頁內所有小姐姐的資訊

        for key in s['userInfo']:
            personlist = []  # 存放一個人的資訊

            uid = key['uid']
            nickname = key['nickname']
            sex = key['sex']
            age = key['age']
            work_location = key['work_location']
            height = key['height']
            education = key['education']
            marriage = key['marriage']
            income = key['income']
            matchCondition = key['matchCondition']
            shortnote = key['shortnote']
            image = key['image']

            personlist.append(uid)
            personlist.append(nickname)
            personlist.append(sex)
            personlist.append(age)
            personlist.append(work_location)
            personlist.append(height)
            personlist.append(education)
            personlist.append(matchCondition)
            personlist.append(marriage)
            personlist.append(income)
            personlist.append(shortnote)
            personlist.append(image)
            usrinfolist.append(personlist)

        dataframe = pd.DataFrame(usrinfolist)
        dataframe.to_csv('世紀佳緣小姐姐資訊.csv', mode='a+', index=False, header=False)  # mode='a+'追加寫入
        print('當前頁數{0}'.format(page))
    else:
        print('決議失敗')

import threading
if __name__ == '__main__':
    for page in range(1, 5000,3):
        url1 = 'http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=2:18.24,3:155.170,23:1&sn=default&sv=1&p=%s&f=select'+str(page)
        #pase_page(url1)
        url2 = 'http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=2:18.24,3:155.170,23:1&sn=default&sv=1&p=%s&f=select' + str(
            page+1)
        url3 = 'http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=2:18.24,3:155.170,23:1&sn=default&sv=1&p=%s&f=select' + str(
            page + 2)
        t1 = threading.Thread(target=pase_page, kwargs={'url':url1})  # 執行緒1
        t2 = threading.Thread(target=pase_page, kwargs={'url':url2})  # 執行緒2
        t3 = threading.Thread(target=pase_page, kwargs={'url':url3})  # 執行緒3
        t1.start()
        t2.start()
        t3.start()


所以我爬取其他網站
http://www.lovewzly.com/jiaoyou.html

網站主頁圖

點開一個小姐姐,發現有擇偶觀資訊可以提取,
發現該小姐姐的網址鏈接為http://www.lovewzly.com/user/4270839.html

在主頁中查看原始碼,我們可以發現小姐姐的網頁地址鏈接可以從主頁圖data-uid分析得到,

于是我們可以認為,爬取主頁,得到所有小姐姐的data-uid,然后遍歷每一個data-uid,根據data-uid拼接小姐姐網頁的地址,然后分析該小姐姐的擇偶觀,

網頁分析
從sources,我們可以找到城市年齡,星座等的數字標簽,這些我們用來自己動手寫函式,用于篩選,

網頁鏈接如圖

下拉查看引數,因為我只勾選了幾個條件,所以網頁鏈接呈現出的引數少,

查看資料,如圖

從上發現資料沒有我想要的擇偶要求, 所以我在此網頁只取userid,然后構建小姐姐網頁地址如http://www.lovewzly.com/user/4276242.html,再從該網頁中提取小姐姐的資訊和擇偶條件.

代碼1:根據條件提取小姐姐的userid
本次編程語言:python,
其他語言也在學,但尚未成長為我的主語言,還不能殺敵,

該代碼中我只設定了篩選條件:小姐姐年齡,性別,城市,是否婚配,

import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
import pandas as pd
import numpy as np
def set_age():
    age = int(input("請輸入對方的期望年齡:"))  # 強制字串轉整型
    if 21 <= age <= 30:
        startage = 21
        endage = 30
    elif 31 <= age <= 40:
        startage = 31
        endage = 40

    return startage, endage
# 設定性別
def set_sex():
    sex = input("請輸入對方的期望性別:")
    if sex == '男':
        gender = 1
    elif sex == '女':
        gender = 2

    return gender
# 設定城市
def set_city():
    city = input("請輸入對方的期望城市:")
    if city == '北京':
        cityid = 52
    elif city == '深圳':
        cityid = 77
    elif city == '廣州':
        cityid = 76
    elif city == '福州':
        cityid = 53
    elif city == '廈門':
        cityid = 60
    elif city == '杭州':
        cityid = 383
    elif city == '青島':
        cityid = 284
    elif city == '長沙':
        cityid = 197
    elif city == '濟南':
        cityid = 283
    elif city == '南京':
        cityid = 220
    elif city == '香港':
        cityid = 395
    elif city == '上海':
        cityid = 321
    elif city == '成都':
        cityid = 322
    elif city == '武漢':
        cityid = 180
    elif city == '蘇州':
        cityid = 221
    elif city == '重慶':
        cityid = 394
    elif city == '香港':
        cityid = 395
    elif city == '南昌':
        cityid = 233
    elif city == '南寧':
        cityid = 97
    elif city == '合肥':
        cityid = 3401
    elif city == '鄭州':
        cityid = 149
    elif city == '佛山':
        cityid = 80
    elif city == '珠海':
        cityid = 96
    elif city == '昆明':
        cityid = 397
    elif city == '石家莊':
        cityid = 138
    elif city == '天津':
        cityid = 143
    return cityid

#是否婚配
def marry():
    print('請輸入是否婚配,輸入字符如:未婚,離異,喪偶')
    marry= input("輸入是否婚配:")
    if marry == '未婚':
       marryid=1
    elif marry=='離異':
        marryid=3
    elif marry=='喪偶':
        marryid=2
    return marryid






# 決議網頁
def get_info(page, startage, endage, gender, cityid, marryid):
    #   http://www.lovewzly.com/api/user/pc/list/search?startage=21&endage=30&gender=2&cityid=394&marry=1&page=1
    #   字串格式化  %s
    url = 'http://www.lovewzly.com/api/user/pc/list/search?startage={}&endage={}&gender={}&cityid={}&marry={}&page={}'.format(
        startage, endage, gender, cityid, marryid, page)
    try:
        # response = requests.get(url).json()    #簡單寫法
        response = requests.get(url)
        if response.status_code == 200:
            result = response.json()
            return result
    except ReadTimeout:  # 超時
        print('Timeout')
        return None
    except ConnectionError:  # 網路問題
        print('Connection error')
        return None
    except RequestException:  # 其他問題
        print('Error')
        return None
#主函式
# 主程式
def main():
    print("請輸入你的篩選條件,開始本次姻緣:")

    # 呼叫上面撰寫的函式
    startage, endage = set_age()#年齡
    gender = set_sex()#性別
    cityid = set_city()#城市
    marryid=marry()#是否婚配


    for i in range(1, 100):  # 取1~100的內容,大多數情況下沒有100頁

        # 獲取抓取到的json資料
        json = get_info(i, startage, endage, gender, cityid,marryid)

        # print(json['data']['list'])
        # 保存圖片
        for item in json['data']['list']:
            userid = item['userid']
            # print(userid)
            userid = np.array(userid)
            userid = pd.Series(userid)
            userid.to_csv('小姐姐資訊userid.csv', mode='a+', index=False, header=False)  # # mode='a+'追加寫入


if __name__ =='__main__':
    main()
    print('讀取結束')

程式圖

結果圖,在此條件下,在該網站只找到454個重慶小姐姐,

再次運行程式,目標城市:成都,上海,將所有結果整合成一張

代碼2:根據userid提取小姐姐的個人資訊和擇偶觀
選項一個小姐姐單擊,審查元素,發現資訊直接顯示在網頁源代碼中,沒有經過渲染等,所以該部分資訊提取沒有難度,不再細講,

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu(余登武)
# @Date  : 2021/2/15
#@email:1344732766@qq.com
import numpy as np
import pandas as pd
import requests
from bs4 import BeautifulSoup
import re
def get_page(url):#獲取請求并回傳決議頁面,offest,keyword為可變引數

    headers = {
        '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'}
    try:
        response = requests.get(url,headers = headers,timeout=10)
        response.encoding = 'utf-8'  # 加編碼,重要!轉換為字串編碼,read()得到的是byte格式的
        if response.status_code == 200 :
            return response.text
    except ConnectionError:
        print('程式錯誤')
        return None

#決議網頁

def pase_page(url,i):
    html = get_page(url)
    html = str(html)
    if html is not None:
        soup = BeautifulSoup(html, 'lxml')

        "----------------------------------小姐姐資訊------------------------------"
        "--昵稱--"
        nickname=soup.select('.view.fl.c6 .nick.c3e')
        nickname=''.join([i.get_text() for i in nickname])

        "--年齡--"
        age=soup.select('.f18.c3e.p2 .age.s1')
        age=''.join(i.get_text()for i in age)

        "--身高--"
        height=soup.select('.f18.c3e.p2 .height')
        height=''.join(i.get_text()for i in height)
        "--學歷--"
        education=soup.select('.f18.c3e.p2 .education')
        education=''.join(i.get_text()for i in education)
        "--現居地--"
        present_address=soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div:nth-child(1) > div.view.fl.c6 > ul > li:nth-child(1) > span')
        present_address=''.join(i.get_text() for i in present_address)

        "--職業--"
        professional=soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div:nth-child(1) > div.view.fl.c6 > ul > li:nth-child(7) > span')
        professional=''.join(i.get_text() for i in professional)


        "--收入--"
        income=soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div:nth-child(1) > div.view.fl.c6 > ul > li:nth-child(8) > span')
        income=''.join(i.get_text()for i in income)

        "--個人照鏈接--"
        photo=soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div:nth-child(1) > div.photo.fl > div.imgwrap > ul > li:nth-child(1) > img')
        photo=str(photo)
        pat1 = '.+src="(.+)"'
        photo=re.compile(pat1).findall(photo)



        "----------------------------------擇偶要求------------------------------"
        "--是否介意對方抽煙--"
        smoking=soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(2) > div.body > ul > li:nth-child(2)')
        smoking=''.join(i.get_text() for i in smoking)
        "--是否介意對方喝酒--"
        drinking = soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(2) > div.body > ul > li:nth-child(4)')
        drinking=''.join(i.get_text() for i in drinking)

        "--是否介意對方有子女--"
        children = soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(2) > div.body > ul > li:nth-child(3)')
        children=''.join(i.get_text()for i in children)

        "--擇偶年齡--"
        age_man = soup.select('#userid > div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(1)')
        age_man=''.join(i.get_text()for i in age_man)


        "--擇偶身高--"
        height_man = soup.select('#userid > div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(2)')
        height_man=''.join(i.get_text()for i in height_man)

        "--擇偶月薪--"
        money_man = soup.select('#userid > div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(3)')
        money_man=''.join(i.get_text()for i in money_man)


        "--擇偶學歷--"
        study_man = soup.select('div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(4)')
        study_man=''.join(i.get_text()for i in study_man)

        "--擇偶職業--"
        professional_man = soup.select('#userid > div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(8)')
        professional_man=''.join(i.get_text() for i in professional_man)
        "--擇偶現居地--"

        present_addressman = soup.select('#userid > div.cm-wrapin.user-warpin > div.clearfix > div.users-left > div.clearfix.user-detail > div:nth-child(3) > div.body > ul > li:nth-child(6)')
        present_addressman=''.join(i.get_text()for i in present_addressman)


        "----------------------------------所有資訊寫入表格------------------------------"



        information = [nickname,age,height,education,present_address,professional,income,photo,
                       smoking,drinking,children,age_man,height_man,money_man,study_man,professional_man, present_addressman]
        information = np.array(information)
        information = information.reshape(-1, 17)
        information = pd.DataFrame(information,
                                   columns=[nickname,age,height,education,present_address,professional,income,photo,
                       smoking,drinking,children,age_man,height_man,money_man,study_man,professional_man, present_addressman])


        if i==0:
            information.to_csv('相親網站小姐姐資料.csv', mode='a+', index=False, header=0)  # mode='a+'追加寫入
        else:
            information.to_csv('相親網站小姐姐資料.csv', mode='a+', index=False, header=False)  # mode='a+'追加寫入
    else:
        print('決議錯誤')



def main():
    f = open('小姐姐資訊.txt', encoding='gbk')
    txt = []
    for line in f:
        txt.append(line.strip())
    #txt = np.array(txt)[0]


    i=0
    for userid in txt:  # 遍歷userid
         print(i)

         #userid=4283676
         base_url = 'http://www.lovewzly.com/user/'+str(userid)+'.html'
         pase_page(base_url,i)
         i+=1
         #print(html)
if __name__ =='__main__':
    main()

得到的資料如下,2500多條資料

資料分析部分

資料分析部分,我懶得寫代碼了,有些累了,
簡單操作,通過表格的資料透視表來簡單分析下,
資料透視表教程

對物件工資分析
在有工資欄位內,58.78%的小姐姐要求物件月入1萬以上,
(錢果然還是萬能的,前段時間聽說離我很近的一個成功企業家出軌一個比他女兒稍微大點的小姐姐,禽獸呀)

單身小姐姐的學歷分布
以本科和專科生居多,果然學歷越低越不容易單身,

查看各個學歷階段小姐姐對物件工資要求
本科生和專科生要求物件月入1萬的人數為294,188

查看小姐姐與物件工資的區別
橫坐標為小姐姐的工資,縱坐標為物件工資統計個數,能月收入5千到1萬的,基本都要求物件月收入1萬以上,

小姐姐物件學歷要求
橫坐標為小姐姐學歷,縱坐標為物件學歷

y軸為小姐姐學歷,x軸為物件,學歷為本科的小姐姐還有不少人要求物件為初高中專科,

小姐姐物件身高要求
欄位太多了,簡單截圖看下,幾個比較大的值170-180

在這里插入圖片描述
通過此文,我發現了小姐姐們的擇偶觀,
此刻的我很膨脹,我覺得她們都配不上我,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260593.html

標籤:python

上一篇:Python05--函式

下一篇:[Python從零到壹] 六.網路爬蟲之BeautifulSoup爬取豆瓣TOP250電影詳解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more