爬取拉勾網(wǎng)爬蟲工程師職位

最近真的好累啊,心累龄毡,很多事想快點做完,但是每個人都有拖延癥锡垄,疊加到我這一層都不知道拖延到什么時候了沦零。好多事總想著要是可以我自己全部搞定就好了。為什么有些人就是不能早定啟動計劃呢货岭?心累路操。


藍瘦香菇~喵

寫代碼吧,這是唯一能“消遣”的方式了千贯。
看到傳智播客課件上有給學(xué)員留一些爬蟲作業(yè)屯仗,嘿嘿,自己決定做做看搔谴。
今天做 “爬取拉勾網(wǎng)爬蟲工程師職位”魁袜。

更新:元旦快樂!元旦終于能過個雙休敦第,好好陪姐姐和麻麻峰弹,順便學(xué)學(xué)爬蟲吧()

第一次爬動態(tài)頁面,一時不知道該怎么下手芜果,好在拉勾是爬蟲工程師常用來練手的地方鞠呈,攻略挺多,哈哈右钾。整體思路如下:

  1. 構(gòu)造并獲取請求
  2. 解析所需要的數(shù)據(jù)
  3. 以Excel形式保存在本地蚁吝。

1.構(gòu)造并獲取請求:
由于拉勾采用異步加載技術(shù)旱爆,之前用的很簡單的獲取靜態(tài)頁面的方式就不行了。需要通過抓包獲得數(shù)據(jù)包窘茁,再從數(shù)據(jù)包里解析所需要的數(shù)據(jù)疼鸟。

打開拉勾網(wǎng),查找關(guān)鍵字“爬蟲工程師”庙曙,打開谷歌瀏覽器賢者模式-network空镜,如下:


image.png

監(jiān)聽器中看到的數(shù)據(jù)有很多,css, png, js......我們需要的數(shù)據(jù)包均不在以上列出來的類型里捌朴,我們的關(guān)注點主要是在xhr類型的文件中吴攒,關(guān)于什么是xhr本渣也不是很懂,只知道它是Ajax對象砂蔽,而Ajax是目前前端廣泛應(yīng)用的一種技術(shù)洼怔,關(guān)于Ajax的更多信息暫不做詳細了解。
過濾xhr類型的數(shù)據(jù)流左驾,我們可以直接選擇 >>>谷歌瀏覽器-Network-XHR獲攘土ァ:


image.png

這就獲得了所有的XHR文件,這時候我們看看獲得的是不是需要的數(shù)據(jù)诡右,逐個點開-Preview:
image.png

這里我點開第一個數(shù)據(jù)包安岂,其他的類似操作》牵可以看到域那,這個數(shù)據(jù)包里確實包含我們需要的信息,那問題來了猜煮,我要如何才能拿到這個數(shù)據(jù)包呢次员?

一開始我哧吭哧吭地采用之前很簡單的傳入UA, Cookies, 然后

requests.get(url, header = headers, cookies = cookies)

甚至連瀏覽器的監(jiān)聽都沒看,這樣拿到的只是拉勾網(wǎng)首頁的靜態(tài)頁面上的數(shù)據(jù)王带,根本拿不到想要的數(shù)據(jù)淑蔚。于是仔細看瀏覽器的監(jiān)聽,之前抓到的XHR數(shù)據(jù)包的Headers如下:


image.png

關(guān)注點有兩個:
Request URL和Request Method愕撰,這里對應(yīng)可以知道獲取這個數(shù)據(jù)包的鏈接以及方法刹衫。

繼續(xù)往下看:


image.png

form data是我們發(fā)起post時必要的參數(shù)
然后我又哧吭哧吭地開始碼代碼了:

# -*- coding: utf-8 -*-
import requests

def get_js(page, job_name):
url = 'https://www.lagou.com/jobs/positionAjax.json?city=%E5%B9%BF%E5%B7%9E&needAddtionalResult=false&isSchoolJob=0'

headers = {
    'Cookie': "user_trace_token=20171218074035-ade4d2dc-e383-11e7-9def-525400f775ce; LGUID=20171218074035-ade4d6be-e383-11e7-9def-525400f775ce; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; JSESSIONID=ABAAABAACBHABBIC9F4C6647BF37CF4EDC0DB33759D67C9; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F; _putrc=21717327F1B053B4; _gid=GA1.2.1846682322.1514773610; _ga=GA1.2.2062218679.1513554042; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1513554041,1514544070,1514608259,1514773610; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1514773651; LGSID=20180101102652-3a420853-ee9b-11e7-b956-525400f775ce; LGRID=20180101102732-52342eb9-ee9b-11e7-9fc4-5254005c3644; SEARCH_ID=7275bd67bfd7481fb9033dab8abc11f3; index_location_city=%E5%B9%BF%E5%B7%9E",
    'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
        }
data = {'first': 'true',
        'pn': page,
        'kd': job_name
        }
response = requests.post(url, data, headers=headers)
print(response.text)

結(jié)果:


image.png

其實在瀏覽器中直接輸入網(wǎng)址:

url = 'https://www.lagou.com/jobs/positionAjax.json?city=%E5%B9%BF%E5%B7%9E&needAddtionalResult=false&isSchoolJob=0'

結(jié)果:


image.png

也是一樣的。小白如我黑人問號臉了很久盟戏,開始找答案绪妹,偶然間看到XX培訓(xùn)機構(gòu)的視頻中提到過的一個點甥桂,瀏覽器header中referer防止重定向柿究,其實自己之前也聽到過referer,它是規(guī)定了當(dāng)前的鏈接只能由某一個鏈接轉(zhuǎn)到黄选,不能直接跳轉(zhuǎn)蝇摸;不過到這里婶肩,才切實體會到其在反爬中的作用。

至此貌夕,整體的獲取數(shù)據(jù)的代碼如下:

# -*- coding: utf-8 -*-
# https://www.lagou.com/jobs/list_python?px=default&city=%E5%8C%97%E4%BA%AC#filterBox

import requests,json,xlwt

def get_js(page, job_name):
    url = 'https://www.lagou.com/jobs/positionAjax.json?city=%E5%B9%BF%E5%B7%9E&needAddtionalResult=false&isSchoolJob=0'

    headers = {
        'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
        'Accept': "application/json, text/javascript, */*; q=0.01",
        'Accept-Encoding': "gzip, deflate, br",
        'Accept-Language': "zh-CN,zh;q=0.9",
        'Connection': "keep-alive",
        'Content-Length': "82",
        'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8",
        'Cookie': "user_trace_token=20171218074035-ade4d2dc-e383-11e7-9def-525400f775ce; LGUID=20171218074035-ade4d6be-e383-11e7-9def-525400f775ce; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; JSESSIONID=ABAAABAACBHABBIC9F4C6647BF37CF4EDC0DB33759D67C9; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F; _putrc=21717327F1B053B4; _gid=GA1.2.1846682322.1514773610; _ga=GA1.2.2062218679.1513554042; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1513554041,1514544070,1514608259,1514773610; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1514773651; LGSID=20180101102652-3a420853-ee9b-11e7-b956-525400f775ce; LGRID=20180101102732-52342eb9-ee9b-11e7-9fc4-5254005c3644; SEARCH_ID=7275bd67bfd7481fb9033dab8abc11f3; index_location_city=%E5%B9%BF%E5%B7%9E",
        'Host': "www.lagou.com",
        'Origin': "https://www.lagou.com",
        'Referer': "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E7%88%AC%E8%99%AB%E5%B7%A5%E7%A8%8B%E5%B8%88?labelWords=&fromSearch=true&suginput=",
        'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
        'X-Anit-Forge-Code': "0",
        'X-Anit-Forge-Token': "None",
        'X-Requested-With': "XMLHttpRequest",
        'Cache-Control': "no-cache",
        'Postman-Token': "2311c5f1-5e34-dc58-d976-e26148708846"
        }
    data = {'first': 'true',
            'pn': page,
            'kd': job_name
            }
    response = requests.post(url, data, headers=headers)

2.解析數(shù)據(jù)
剛剛我們從拉勾上獲取了響應(yīng)的數(shù)據(jù)包律歼,這里我們還是要回去看瀏覽器中捕捉到的信息,谷歌瀏覽器-NETWORK-XHR-第一個XHR包-Preview:


image.png

我們要獲得的數(shù)據(jù)啡专,對應(yīng)的路徑為:content-positionResult-result-0(一直到14)
這里0-14可以點開看险毁,就是每個職位的具體信息:


image.png

這些json類型的數(shù)據(jù),解析起來很方便们童,類似于鍵值對的形式畔况,只要我們?nèi)∑渲械逆I就能獲取值。不過首先我們需要對上面get_js(page, job_name)函數(shù)做點補充慧库,讓它直接拿到j(luò)son數(shù)據(jù)跷跪。直接上代碼吧
def parse_js(json_info):
    #定義一個空列表,用以存放我們想要提取的數(shù)據(jù)
    info_list = []
    for info in json_info:
        #將要的數(shù)據(jù)通通放到空列表中
        info_list.append(info['companyFullName'])
        info_list.append(info['companyShortName'])
        info_list.append(info['companyId'])
        info_list.append(info['positionName'])
        info_list.append(info['salary'])
        info_list.append(info['workYear'])
        info_list.append(info['education'])
        info_list.append(info['industryField'])
        info_list.append(info['financeStage'])
        info_list.append(info['companySize'])
        info_list.append(info['city'])
    return info_list

然后將數(shù)據(jù)保存下來就行了齐板。代碼如下:

def main():

    # 先定義一個空列表吵瞻,這個列表才是我們真正會寫進Excel的列表
    real_list = []
    # 這里寫入 Excel 我用 xlwt 這個庫
    book = xlwt.Workbook()
    sheet1 = book.add_sheet('crwalerposition.xls', cell_overwrite_ok=True)

    # 先做個表頭
    proformlist = ['公司全稱', '公司簡稱', '公司代號', '職位名稱', '薪水區(qū)間', '工作年限', '教育程度', '行業(yè)性質(zhì)', '目前狀況', '公司規(guī)模', '上班地點']
    j = 0
    for pro in proformlist:
        sheet1.write(0, j, pro)
        j += 1

    i_list = []
    page = 1
    while page < 26:
        i_list = i_list + parse_js(get_js(str(page), "爬蟲工程師"))
        print("得到第%r頁數(shù)據(jù)" % page)
        page += 1
        # time.sleep(5)
        # print(i_list)

    for k in range(0, len(i_list), 11):
        # 將大列表以11為切割的單位,切割成小列表甘磨,方便后面操作橡羞。這里感覺有點吃力不討好了。济舆。尉姨。
        new_list = i_list[k: k + 11]
        real_list.append(new_list)

    m = 1
    for list in real_list:
        n = 0
        for info in list:
            sheet1.write(m, n, info)
            n += 1
        print("第%r家公司數(shù)據(jù)錄入完畢" %m )
        m += 1
    print("搞定收工!" )
    book.save('python_job_info_in_all.xls')

main()

關(guān)于保存吗冤,我摸了很久又厉。一開始的思路是,將"保存"這件事封裝成一個函數(shù)椎瘟,這樣覆致,獲取,解析和保存都能單獨作為一個函數(shù)肺蔚,再編寫一個main函數(shù)煌妈,用for循環(huán)遍歷所有的20多個頁面將,并對以上函數(shù)調(diào)用就OK宣羊。然而當(dāng)我執(zhí)行代碼的時候璧诵,數(shù)據(jù)總是只能拿到兩頁數(shù)據(jù)而已。

為什么只能拿到兩頁數(shù)據(jù)仇冯?明明有二十幾頁的呀之宿?這時候新手的不自信就出現(xiàn)了:肯定是我的代碼出現(xiàn)了某種問題,而且這個問題應(yīng)該在外人看來很簡單苛坚。我仔細把重頭代碼看幾遍比被,試著將解析的列表打印出來看色难,顯示確實只有那么多數(shù)據(jù),排除是寫入文件的問題等缀。

那就是獲取數(shù)據(jù)出現(xiàn)問題咯枷莉?被ban了?爬取太快尺迂?可是我每一次重新跑代碼都可以得到數(shù)據(jù)呀笤妙,數(shù)據(jù)也不多不少就只有那么多,兩頁噪裕。我用了隨機ua, time.sleep危喉,差點就上代理ip了,結(jié)果還是沒州疾,卵辜限,用!严蓖!還是偶然的機會薄嫡,再回去看拉勾網(wǎng)的時候才注意到,我爬的數(shù)據(jù)和我看的頁面根本不一樣?藕毫深!尼瑪坑爹,不知道什么時候手抖把查詢城市選為不限了毒姨,而一開始我只打算爬取廣州地區(qū)的數(shù)據(jù)的Q颇琛!廣州本地的爬蟲工程師職位確實只有兩頁弧呐。闸迷。。俘枫。腥沽。。(可憐== 本來自己就菜鸠蚪,工作機會還這么少今阳。。茅信。)

下面是全部完整代碼:

# -*- coding: utf-8 -*-
# https://www.lagou.com/jobs/list_python?px=default&city=%E5%8C%97%E4%BA%AC#filterBox

import requests,json,xlwt
import time,random

def get_js(page, job_name):
    url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&needAddtionalResult=false&isSchoolJob=0'
    #隨機ua列表
    UA_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
               "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
               "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
               "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
               "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6"
               ]
    UA = random.choice(UA_list)

    #構(gòu)造請求參數(shù)
    headers = {
        'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
        'Accept': "application/json, text/javascript, */*; q=0.01",
        'Accept-Encoding': "gzip, deflate, br",
        'Accept-Language': "zh-CN,zh;q=0.9",
        'Connection': "keep-alive",
        'Content-Length': "82",
        'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8",
        'Cookie': "user_trace_token=20171218074035-ade4d2dc-e383-11e7-9def-525400f775ce; LGUID=20171218074035-ade4d6be-e383-11e7-9def-525400f775ce; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; JSESSIONID=ABAAABAACBHABBIC9F4C6647BF37CF4EDC0DB33759D67C9; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F; _putrc=21717327F1B053B4; _gid=GA1.2.1846682322.1514773610; _ga=GA1.2.2062218679.1513554042; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1513554041,1514544070,1514608259,1514773610; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1514773651; LGSID=20180101102652-3a420853-ee9b-11e7-b956-525400f775ce; LGRID=20180101102732-52342eb9-ee9b-11e7-9fc4-5254005c3644; SEARCH_ID=7275bd67bfd7481fb9033dab8abc11f3; index_location_city=%E5%B9%BF%E5%B7%9E",
        'Host': "www.lagou.com",
        'Origin': "https://www.lagou.com",
        'Referer': "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E7%88%AC%E8%99%AB%E5%B7%A5%E7%A8%8B%E5%B8%88?labelWords=&fromSearch=true&suginput=",
        'User-Agent': UA,
        'X-Anit-Forge-Code': "0",
        'X-Anit-Forge-Token': "None",
        'X-Requested-With': "XMLHttpRequest",
        'Cache-Control': "no-cache",
        'Postman-Token': "2311c5f1-5e34-dc58-d976-e26148708846"
        }
    data = {'first': 'true',
            'pn': page,
            'kd': job_name
            }
    response = requests.post(url, data, headers=headers)
    json_info = response.json()['content']['positionResult']['result']
    return json_info #此處return的是一個列表類型

def parse_js(json_info):
    #定義一個空列表盾舌,用以存放我們想要提取的數(shù)據(jù)
    info_list = []
    for info in json_info:
        #將要的數(shù)據(jù)通通放到空列表中
        info_list.append(info['companyFullName'])
        info_list.append(info['companyShortName'])
        info_list.append(info['companyId'])
        info_list.append(info['positionName'])
        info_list.append(info['salary'])
        info_list.append(info['workYear'])
        info_list.append(info['education'])
        info_list.append(info['industryField'])
        info_list.append(info['financeStage'])
        info_list.append(info['companySize'])
        info_list.append(info['city'])
    return info_list

def main():

    # 先定義一個空列表,這個列表才是我們真正會寫進Excel的列表
    real_list = []
    # 這里寫入 Excel 我用 xlwt 這個庫
    book = xlwt.Workbook()
    sheet1 = book.add_sheet('crwalerposition.xls', cell_overwrite_ok=True)

    # 先做個表頭
    proformlist = ['公司全稱', '公司簡稱', '公司代號', '職位名稱', '薪水區(qū)間', '工作年限', '教育程度', '行業(yè)性質(zhì)', '目前狀況', '公司規(guī)模', '上班地點']
    j = 0
    for pro in proformlist:
        sheet1.write(0, j, pro)
        j += 1

    i_list = []
    page = 1
    while page < 26:
        i_list = i_list + parse_js(get_js(str(page), "爬蟲工程師"))
        print("得到第%r頁數(shù)據(jù)" % page)
        page += 1
        # time.sleep(5)
    # print(i_list)

    for k in range(0, len(i_list), 11):
        # 將大列表以11為切割的單位蘸鲸,切割成小列表妖谴,方便后面操作。這里感覺有點吃力不討好了棚贾。窖维。。
        new_list = i_list[k: k + 11]
        real_list.append(new_list)

    m = 1
    for list in real_list:
        n = 0
        for info in list:
            sheet1.write(m, n, info)
            n += 1
        print("第%r家公司數(shù)據(jù)錄入完畢" %m )
        m += 1
    print("搞定收工妙痹!" )
    book.save('python_job_info_in_all.xls')

main()
成果展示
代碼結(jié)束界面

總結(jié):
1.異步請求铸史,抓包要學(xué)會刪選。今天試著抓一些淘寶的評論怯伊,哇琳轿,那數(shù)據(jù)簡直嘩嘩的,都不知道自己要的數(shù)據(jù)在哪個數(shù)據(jù)包里耿芹。告訴自己崭篡,學(xué)會抓包、學(xué)會用抓包工具吧秕!

2.簡單的反爬策略:UA, 代理琉闪,延時。其他的策略有待繼續(xù)學(xué)習(xí)砸彬。

3.把淘寶京東爬一下颠毙,就該學(xué)學(xué)如何提高效率了。

4.scrapy 砂碉,scrapy蛀蜜,scrapy,scrapy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末增蹭,一起剝皮案震驚了整個濱河市滴某,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滋迈,老刑警劉巖霎奢,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異饼灿,居然都是意外死亡椰憋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門赔退,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橙依,“玉大人,你說我怎么就攤上這事硕旗〈捌铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵漆枚,是天一觀的道長创译。 經(jīng)常有香客問我,道長墙基,這世上最難降的妖魔是什么软族? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任刷喜,我火速辦了婚禮,結(jié)果婚禮上立砸,老公的妹妹穿的比我還像新娘掖疮。我一直安慰自己,他們只是感情好颗祝,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布浊闪。 她就那樣靜靜地躺著,像睡著了一般螺戳。 火紅的嫁衣襯著肌膚如雪搁宾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天倔幼,我揣著相機與錄音盖腿,去河邊找鬼。 笑死损同,一個胖子當(dāng)著我的面吹牛奸忽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揖庄,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栗菜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蹄梢?” 一聲冷哼從身側(cè)響起疙筹,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎禁炒,沒想到半個月后而咆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡幕袱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年暴备,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片们豌。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡涯捻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出望迎,到底是詐尸還是另有隱情障癌,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布辩尊,位于F島的核電站涛浙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轿亮,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一疮薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧我注,春花似錦按咒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玻淑。三九已至嗽冒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間补履,已是汗流浹背添坊。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箫锤,地道東北人贬蛙。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像谚攒,于是被迫代替她去往敵國和親阳准。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1 前言 作為一名合格的數(shù)據(jù)分析師馏臭,其完整的技術(shù)知識體系必須貫穿數(shù)據(jù)獲取野蝇、數(shù)據(jù)存儲、數(shù)據(jù)提取括儒、數(shù)據(jù)分析绕沈、數(shù)據(jù)挖掘、...
    whenif閱讀 18,073評論 45 523
  • 1.針對最近的爆款文《就算老公一毛錢股份都沒拿到帮寻,在我心里乍狐,他依然是最牛逼的創(chuàng)業(yè)者》,用不超過三句固逗,說說要不要抓熱...
    珊_76f8閱讀 300評論 0 0
  • 開會那些細碎而美好的存在 開會浅蚪,大都市生活圈里各大機構(gòu)的最基本元素。 欲望烫罩,也是我們在都市里生存的基本元素掘鄙。...
    陳東紅先生閱讀 498評論 1 2
  • 一聲嘆息吹皺了記憶 泛黃書信舊香四溢 縈繞鼻尖揮之不去的秘密 路燈下的吻禮 輾轉(zhuǎn)千年把愛恨翻洗 從未細細看過你 尤...
    陌諾流年閱讀 406評論 15 30
  • 久經(jīng)烈日燒灼的重慶終于在九月放涼,微風(fēng)夾雜著細雨的黃昏浊伙,空氣中彌漫著久違的絲絲涼意撞秋。霓虹燈照耀出風(fēng)和雨的形狀,就像...
    是卷卷兒哇閱讀 699評論 0 2