R爬蟲實(shí)戰(zhàn)—抓取PubMed文章的基本信息

前幾期簡單介紹了一系列R爬蟲的基礎(chǔ)知識(shí)、核心R包以及一些輔助工具畦幢,其中,基礎(chǔ)知識(shí)包括R爬蟲必備基礎(chǔ)——HTML和CSS初識(shí)宇葱,R爬蟲必備基礎(chǔ)——靜態(tài)網(wǎng)頁+動(dòng)態(tài)網(wǎng)頁R爬蟲必備基礎(chǔ)—HTTP協(xié)議R爬蟲必備基礎(chǔ)—?jiǎng)討B(tài)異步加載黍瞧;核心R包包括R爬蟲必備——rvest包的使用诸尽,R爬蟲必備基礎(chǔ)—rvest為什么不用于動(dòng)態(tài)網(wǎng)頁您机?R爬蟲必備—httr+POST請(qǐng)求類爬蟲(網(wǎng)易云課堂)R爬蟲必備——httr+GET請(qǐng)求類爬蟲(解螺旋課程)被碗;輔助工具包括R爬蟲必備基礎(chǔ)——CSS+SelectorGadget某宪,R爬蟲必備基礎(chǔ)—Chrome開發(fā)者工具(F12)。今天呢兴喂,通過爬取PubMed實(shí)戰(zhàn)案例來進(jìn)一步鞏固前期所學(xué)。

爬取目的

當(dāng)要開展某個(gè)領(lǐng)域的研究時(shí)衣迷,需要檢索查看下該領(lǐng)域都研究了什么。通過pubmed檢索后文章可能非常多壶谒,這個(gè)時(shí)候不可能每篇都通讀云矫,通常都是先看下摘要汗菜,然后再選擇感興趣的進(jìn)行全文查閱。為了避免一篇篇在線點(diǎn)擊查閱陨界,也不便于做記錄巡揍,可以將該領(lǐng)域文章的基本信息(包括摘要內(nèi)容)爬取下來菌瘪,然后本地查看俏扩,最后通過PMID號(hào)下載感興趣全文。下面录淡,將以lncRNA為關(guān)鍵詞,爬取2020年發(fā)表的綜述類文章的題目赁咙、PMID號(hào)、作者彼水、發(fā)表雜志崔拥、摘要等信息链瓦。

網(wǎng)頁分析

首先打開網(wǎng)站,輸入lncRNA關(guān)鍵詞,選擇review渤刃,然后時(shí)間限制在2020年,option選擇Abstract贴膘,得到如下檢索界面,網(wǎng)址為:https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract刑峡,這為第一條信息,共計(jì)顯示10條記錄突梦。從下圖我們知道該網(wǎng)頁是個(gè)帶有Query String Parameters 參數(shù)的GET類請(qǐng)求

image
image

共計(jì)有390條信息宫患,需要完全獲取該怎么辦?先嘗試點(diǎn)擊more后娃闲,發(fā)現(xiàn)展示了page2(共計(jì)10條),將鼠標(biāo)往下拉畜吊,網(wǎng)址會(huì)添加&page=2,最終網(wǎng)址:https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=2玲献,Ctrl+R刷新開發(fā)工具后臺(tái)殉疼,預(yù)覽的結(jié)果是11-20條捌年。按照如此規(guī)律,就可以構(gòu)建有規(guī)律的網(wǎng)址礼预,如下所示。共計(jì)390條記錄托酸,每頁顯示10條,那需要39頁励堡。按照這個(gè)思路就可以爬取所有信息。


https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=2
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=3
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=4
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=5
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=6
...
https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract&page=39

但是应结,還有另一種方式泉唁,回到首頁,打開開發(fā)后臺(tái)揩慕,定位到XHR面板。然后點(diǎn)擊more迎卤,一直more,注意這個(gè)過程不要刷新頁面****止吐,發(fā)現(xiàn)XHR面板上每點(diǎn)擊一次more侨糟,就會(huì)生成一個(gè)more碍扔,同時(shí)你主網(wǎng)頁網(wǎng)址維持不變秕重。這是個(gè)典型的通過more達(dá)到異步加載的目的。

image

查看這幾個(gè)more的Headers信息溶耘,會(huì)發(fā)現(xiàn)明顯的規(guī)律(如下所示),都是向https://pubmed.ncbi.nlm.nih.gov/more/發(fā)起請(qǐng)求凳兵,通過POST提交表單信息,只要修改page即可庐扫,按照這個(gè)思路也可以爬取所有文章信息饭望。需要注意的是形庭,這種動(dòng)態(tài)加載的POST請(qǐng)求類爬蟲是從第二頁開始的。

image

爬蟲策略

第一種策略

構(gòu)建有規(guī)律的網(wǎng)址【https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&page=頁碼】 萨醒,共計(jì)390條記錄,每頁顯示10條富纸,那需要39頁,可以按照這個(gè)思路進(jìn)行爬取晓褪,這里它屬于一種GET請(qǐng)求類爬蟲。對(duì)于這類爬蟲辞州,有以下幾種爬取方式:

  • 方法一:rvest怔锌,不推薦,之前有專門有推文說過原因涝涤。爬取少量的確也能成功,但很容易被封阔拳。
  • 方法二:httr+rvest組合(推薦),httr解決網(wǎng)絡(luò)請(qǐng)求問題类嗤,rvest解決網(wǎng)頁解析和信息提取。
  • 方法三:RCurl+XML組合遗锣,RCurl解決網(wǎng)絡(luò)請(qǐng)求問題,XML解決網(wǎng)頁解析和信息提取精偿。
第二種策略

根據(jù)more發(fā)起的動(dòng)態(tài)加載,構(gòu)建有規(guī)律的POST請(qǐng)求笔咽,也可以進(jìn)行爬取搔预,這里它屬于一種POST請(qǐng)求類爬蟲叶组。對(duì)于這類爬蟲,主要有以下兩種爬取方式:

  • 方法一:httr+rvest組合(推薦)甩十,httr解決網(wǎng)絡(luò)請(qǐng)求問題,rvest解決網(wǎng)頁解析和信息提取枣氧。
  • 方法二:RCurl+XML組合溢十,RCurl解決網(wǎng)絡(luò)請(qǐng)求問題达吞,XML

今天呢,先介紹第一種爬取策略的方法二:httr+rvest組合酪劫。

rm(list=ls())
#加載所需要的R包,沒安裝的提前安裝
library("httr") 
library("magrittr")
library("rvest")
library("xml2")
library("stringr")

#首先構(gòu)造第一頁的url
url <- c('https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract')
#構(gòu)造請(qǐng)求提交信息覆糟,根據(jù)Request headers的內(nèi)容填寫。
mycookie <- 'ncbi_sid=CE8CCD5EEB3B8391_1825SID; _ga=GA1.2.284594426.1588836424; entrezSort=pubmed:; MyNcbiSigninPreferences=O25jYmlscyY%3D; WebCubbyUser=UFSJUQUQPJOPNU17DZHC79N0PN7V14ZM%3Blogged-in%3Dtrue%3Bmy-name%3Dyuanjiuyun%3Bpersistent%3Dtrue%40CE8CCD5EEB3B8391_1825SID; labs-pubmed-csrftoken=xKN3RWUpM9RzswSjmTAC4JiUbvWAqrtcAg0HGZHagClqGImTVx95DdMmRl117GHI; pmc.article.report=; _gid=GA1.2.1075622582.1592800677; sessionid=cwuommk94ngosh06896fslsck0ezxmb6; pm_ncbi_alert_dismiss=nCoV; pm-sid=U_VuaPR2IXwdvtAlIoP3EQ:bac28257745cb37e186420a3d2058fb9; pm-adjnav-sid=yWapb_Ia32GrozOuqYVerQ:54e8575844b60ed67d1216e4ff365989; pm-iosp=; ncbi_pinger=N4IgDgTgpgbg+mAFgSwCYgFwgCwE4BCAIgAykCM+AbAKzaHYBi1ppATPgwMysDsx2rAMKdCAOjKiAtnDJkQAGhABXAHYAbAPYBDVCqgAPAC6ZQrTOCUAjSVHSLO5sFZt2c5gM5QtEAMaJo7kpqxorU5gogsuZyiqzE5nhELBQ0dIzMLOxcvPxCIuJSMjEgrHJYTta2GBUuGJ7efgFBhhgAcgDyrQCiEaxm5c62oio+lsjDapLDyIiiAOYaML240dSclBGc8VgAHJTYm2WRaxv2/SA7rAf2DlgAZlpqnpsHWIYQSlCbO+H2K7vYHisH6KbDbC5A1grUG3EDEURQ0TxUGvZTqbS6AwhHBhLDFNbmSiUMyhVGQiLUDZYZEgag8cw0yhHMiUYjQkBEjxeXyIEAAXz5QA'
#注意比較,保留不變的參數(shù)
myheaders <- c('accept' ='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
               'accept-encoding' = 'gzip, deflate, br',
               'accept-language' = 'zh-CN,zh;q=0.9',
               'user-agent' = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
               'referer'= 'https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=years.2020-2020&format=abstract'
)

#構(gòu)造請(qǐng)求頭參數(shù)信息滩字,根據(jù)Query String Parameters內(nèi)容填寫
mypayload <- list("term" = "lncRNA",
                  "filter" = "pubt.review",
                  "filter"= "years.2020-2020",
                  "format" = "abstract")

#執(zhí)行第一頁,httr的GET函數(shù)
response <- GET(url = url, add_headers(.headers = myheaders), set_cookies(.cookies =mycookie),timeout(30),query = mypayload)

#讀入并解析網(wǎng)頁內(nèi)容
web <- read_html(response, encoding ="utf-8")
paper_inf <- data.frame()
#提取文章題目
paper_title <- web %>% html_nodes("div.full-view h1.heading-title a") %>% html_text() %>% str_replace_all("  ","") %>%str_replace_all("\n","")
#提取文章PMID號(hào)
paper_PMID <- web %>% html_nodes("ul.identifiers li span.pubmed strong.current-id") %>% html_text()
paper_PMID <- paper_PMID[seq(2,length(paper_PMID),2)]
#提取發(fā)表的雜志
paper_journal <- web %>% html_nodes("div.journal-actions button") %>% html_attr("title")
paper_journal <- paper_journal[seq(2,length(paper_journal),2)]
#提取文章摘要
paper_abstract <- web %>% html_nodes("div.abstract div.selected") %>% html_text() %>% str_replace_all("\n","") %>% str_replace_all("  ","")
#提取文章作者
paper_author <- web %>% html_nodes("div.authors-list") %>% html_text() %>% str_replace_all("\n","") %>% str_replace_all("  ","") %>% str_replace_all("(\u00A0)","")
paper_author <- paper_author[seq(2,length(paper_author),2)]
#創(chuàng)建數(shù)據(jù)框存儲(chǔ)以上信息
papers <- data.frame(paper_title,paper_author,paper_journal,paper_abstract,paper_PMID)
paper_inf <- rbind(paper_inf,papers)


#接下來御吞,利用循環(huán),從第二頁開始
for (i in 2:5){
  #首先構(gòu)造第一頁的url
  url <- c('https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=pubt.review&filter=years.2020-2020&format=abstract')
  #構(gòu)造請(qǐng)求提交信息漓藕,根據(jù)Request headers的內(nèi)容填寫。
  mycookie <- 'ncbi_sid=CE8CCD5EEB3B8391_1825SID; _ga=GA1.2.284594426.1588836424; entrezSort=pubmed:; MyNcbiSigninPreferences=O25jYmlscyY%3D; WebCubbyUser=UFSJUQUQPJOPNU17DZHC79N0PN7V14ZM%3Blogged-in%3Dtrue%3Bmy-name%3Dyuanjiuyun%3Bpersistent%3Dtrue%40CE8CCD5EEB3B8391_1825SID; labs-pubmed-csrftoken=xKN3RWUpM9RzswSjmTAC4JiUbvWAqrtcAg0HGZHagClqGImTVx95DdMmRl117GHI; pmc.article.report=; _gid=GA1.2.1075622582.1592800677; sessionid=cwuommk94ngosh06896fslsck0ezxmb6; pm_ncbi_alert_dismiss=nCoV; pm-sid=U_VuaPR2IXwdvtAlIoP3EQ:bac28257745cb37e186420a3d2058fb9; pm-adjnav-sid=yWapb_Ia32GrozOuqYVerQ:54e8575844b60ed67d1216e4ff365989; pm-iosp=; ncbi_pinger=N4IgDgTgpgbg+mAFgSwCYgFwgCwE4BCAIgAykCM+AbAKzaHYBi1ppATPgwMysDsx2rAMKdCAOjKiAtnDJkQAGhABXAHYAbAPYBDVCqgAPAC6ZQrTOCUAjSVHSLO5sFZt2c5gM5QtEAMaJo7kpqxorU5gogsuZyiqzE5nhELBQ0dIzMLOxcvPxCIuJSMjEgrHJYTta2GBUuGJ7efgFBhhgAcgDyrQCiEaxm5c62oio+lsjDapLDyIiiAOYaML240dSclBGc8VgAHJTYm2WRaxv2/SA7rAf2DlgAZlpqnpsHWIYQSlCbO+H2K7vYHisH6KbDbC5A1grUG3EDEURQ0TxUGvZTqbS6AwhHBhLDFNbmSiUMyhVGQiLUDZYZEgag8cw0yhHMiUYjQkBEjxeXyIEAAXz5QA'
  #注意比較,保留不變的參數(shù)
  myheaders <- c('accept' ='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                 'accept-encoding' = 'gzip, deflate, br',
                 'accept-language' = 'zh-CN,zh;q=0.9',
                 'user-agent' = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
                 'referer'= 'https://pubmed.ncbi.nlm.nih.gov/?term=lncRNA&filter=years.2020-2020&format=abstract')
  #構(gòu)造請(qǐng)求頭參數(shù)信息享钞,根據(jù)Query String Parameters內(nèi)容填寫
  mypayload <- list("term" = "lncRNA",
                    "filter" = "pubt.review",
                    "filter"= "years.2020-2020",
                    "format" = "abstract",
                    "page" = i)
  #執(zhí)行第一頁,httr的GET函數(shù)
  response <- GET(url = url, add_headers(.headers = myheaders),set_cookies(.cookies =mycookie),timeout(30),query = mypayload)
  #讀入并解析網(wǎng)頁內(nèi)容
  web <- read_html(response, encoding ="utf-8")
  #提取文章題目
  paper_title <- web %>% html_nodes("div.full-view h1.heading-title a") %>% html_text() %>% str_replace_all("  ","") %>%str_replace_all("\n","")
  #提取文章PMID號(hào)
  paper_PMID <- web %>% html_nodes("ul.identifiers li span.pubmed strong.current-id") %>% html_text()
  paper_PMID <- paper_PMID[seq(2,length(paper_PMID),2)]
  #提取發(fā)表的雜志
  paper_journal <- web %>% html_nodes("div.journal-actions button") %>% html_attr("title")
  paper_journal <- paper_journal[seq(2,length(paper_journal),2)]
  #提取文章摘要
  paper_abstract <- web %>% html_nodes("div.abstract div.selected") %>% html_text() %>% str_replace_all("\n","")
  #提取文章作者
  paper_author <- web %>% html_nodes("div.authors-list") %>% html_text() %>% str_replace_all("\n","") %>% str_replace_all("  ","") %>% str_replace_all("(\u00A0)","")
  paper_author <- paper_author[seq(2,length(paper_author),2)]
  #創(chuàng)建數(shù)據(jù)框存儲(chǔ)以上信息
  papers <- data.frame(paper_title,paper_author,paper_journal,paper_abstract,paper_PMID)
  paper_inf <- rbind(paper_inf,papers)
}

#將數(shù)據(jù)寫入csv文檔
write.csv(paper_inf, file="paper_lncRNA_revew_2020.csv")

運(yùn)行結(jié)束后,共計(jì)獲取390條信息暑脆,內(nèi)容如下:

image

以上代碼主要是為了展示httr+rvest這類組合如何完成GET請(qǐng)求類爬蟲,整體代碼是比較簡單粗糙的狐肢,沒有添加訪問出錯(cuò)時(shí)的應(yīng)對(duì)方式,也沒有設(shè)置代理池处坪,且訪問速度也不是很快,應(yīng)付少量的文章爬取還是OK的同窘。如果有小伙伴,的確有整理匯總Pubmed文章信息的需求想邦,可以直接從官網(wǎng)上導(dǎo)出即可。新版PubMed可以提供一次性導(dǎo)出(10000條信息以內(nèi))委刘,具體方法,根據(jù)自身要求設(shè)置篩選條件后锡移,點(diǎn)擊save,選擇All results即可淆珊。

image

結(jié)果如下圖所示夺饲,內(nèi)容很多施符,但卻沒有文章摘要信息,仍是美中不足(雖然網(wǎng)站是可以導(dǎo)出摘要信息的戳吝,但為txt文本格式,不直觀)听哭。所以慢洋,爬蟲在一定程度上來說還是有用的。

image

當(dāng)爬取到這些文章的基本信息后普筹,可以本地查閱每篇文章的主要內(nèi)容。對(duì)于看英文有困難斑芜,可以將其翻譯成中文肩刃。將輸出的文章信息修改成xls格式杏头,然后打開https://translate.yandex.com/doc,將文件上傳上去即可全文翻譯醇王。

往期回顧
R爬蟲在工作中的一點(diǎn)妙用
R爬蟲必備基礎(chǔ)——HTML和CSS初識(shí)
R爬蟲必備基礎(chǔ)——靜態(tài)網(wǎng)頁+動(dòng)態(tài)網(wǎng)頁
R爬蟲必備——rvest包的使用
R爬蟲必備基礎(chǔ)——CSS+SelectorGadget
R爬蟲必備基礎(chǔ)—Chrome開發(fā)者工具(F12)
R爬蟲必備基礎(chǔ)—HTTP協(xié)議
R爬蟲必備—httr+POST請(qǐng)求類爬蟲(網(wǎng)易云課堂)
R爬蟲必備基礎(chǔ)—rvest為什么不用于動(dòng)態(tài)網(wǎng)頁?
R爬蟲必備——httr+GET請(qǐng)求類爬蟲(解螺旋課程)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寓娩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棘伴,更是在濱河造成了極大的恐慌寞埠,老刑警劉巖焊夸,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阱穗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)揪阶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲁僚,“玉大人炊苫,你說我怎么就攤上這事蕴茴。” “怎么了倦淀?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵蒋畜,是天一觀的道長撞叽。 經(jīng)常有香客問我插龄,道長,這世上最難降的妖魔是什么均牢? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮才睹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琅攘。我一直安慰自己垮庐,他們只是感情好坞琴,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剧辐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荧关。 梳的紋絲不亂的頭發(fā)上溉奕,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天羞酗,我揣著相機(jī)與錄音,去河邊找鬼檀轨。 笑死欺嗤,一個(gè)胖子當(dāng)著我的面吹牛参萄,可吹牛的內(nèi)容都是我干的煎饼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼吆玖,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了沾乘?” 一聲冷哼從身側(cè)響起怜奖,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤翅阵,失蹤者是張志新(化名)和其女友劉穎迁央,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滥崩,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年钙皮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片短条。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慌烧,靈堂內(nèi)的尸體忽然破棺而出逐抑,到底是詐尸還是另有隱情屹蚊,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布汹粤,位于F島的核電站命斧,受9級(jí)特大地震影響嘱兼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芹壕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一汇四、第九天 我趴在偏房一處隱蔽的房頂上張望踢涌。 院中可真熱鬧,春花似錦睁壁、人聲如沸背苦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春乏德,著一層夾襖步出監(jiān)牢的瞬間搂漠,已是汗流浹背芝发。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工秘蛇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留备燃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓并齐,卻偏偏與公主長得像漏麦,于是被迫代替她去往敵國和親况褪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345