1001位知乎姑娘

其实这篇博文是一个基于R的爬虫,抓取了1001位知乎姑娘所有答主上传的美照。共800多张图片。??

废话不多说,贴下代码和最后的抓取结果。嗯,??,我会先贴图再贴代码。

这些图片是来源于哪些优秀的知乎问题??(共100个问题)

菇凉们的图:(我只抓了100张图,总共有800多张吧)(如有侵犯隐私,请立刻联系我,我立刻删除)

代码:

#--------
#2015-10-04 知乎的1001位姑娘
#Lee
#http://www.zhihu.com/collection/26348030?page=1
#--------
library(magrittr)
library(proto)
library(gsubfn)
library(bitops)
library(rvest)
library(stringr)
library(DBI)
library(RSQLite)
library(RCurl)
library(curl)
library(sqldf)
get.jpgurl <-function(pgnum) {
    url <- paste0(‘http://www.zhihu.com/collection/26348030?page=‘,pgnum)
    #url <- ‘http://www.zhihu.com/collection/26348030?page=5‘
    text <- url%>%html_session()%>%html_nodes(‘textarea.content‘)%>%html_text()
    #下面这个问题的答案太棒,直接从文本中提取url。非以jpg结尾的url不要,所以又用正则匹配以jpg结尾的url。
    #http://stackoverflow.com/questions/26496538/extract-urls-with-regex-into-a-new-data-frame-column
    url_pattern <- "http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
    #每个回答,答主可能不止上传一张照片,所以需要从答案txt中提取所有的出以.jpg结尾的url
    combineurl <- data.frame()
        for(i in 1:length(text)){
            urlpick <- sapply(text[i],function(txt) str_extract_all(txt,url_pattern,simplify=T))
            if(!is.matrix(urlpick)) next;
            # 下面总是报如下错误,好像是有的df并没有列名,强制赋给他一个列名,所以报错。
            # google了,也没得到很好的解决办法。先跳过。
            # ‘names‘属性的长度[1]必需和矢量的长度[0]一样
            # 最后想明白了,有可能有些答案并没有上传图片,答案的txt里也就没有url,这时候就生成了一个空的矩阵,所以,你给空矩阵改列名,是不可取的。
            colnames(urlpick) <- c(‘V1‘)
            urlpick <- as.data.frame(urlpick,stringsAsFactors=F)
            urlpick <- sqldf("select * from urlpick where V1 like ‘%jpg‘")#再次过滤,只要以jpg结尾的url
            combineurl <- rbind(combineurl,urlpick)
        }
    return(combineurl)
}
#抓取所有以.jpg结尾的url
#总共5页,就不写多线程了‹
url.total <- data.frame()
for(i in 1:5){
    url.total <- rbind(url.total,get.jpgurl(i))
}
#下载所有jpg文件,并从1开始编号,下载后发现每张图片都double了,排查下原因,
# https://pic4.zhimg.com/d69a132cc27914af57c1b9eeb1a938c7_b.jpg
# https://pic4.zhimg.com/d69a132cc27914af57c1b9eeb1a938c7_r.jpg
# 以上两个url指向的是同一张图片,但这两个url不一样,是前后挨着的。
# 分别查看了以b.jpg和r.jpg结尾的各有多少,结果是811和750,那就以b.jpg为准吧。
# 811位菇凉,还不到1001,??
tt <- url.total
urltt <- sqldf("select * from tt where V1 like ‘%b.jpg‘")
for(i in 1:100) {
    #想自己爬的,把路径换成自己的就ok了,我把路径用***代替。
    tmp <- paste0(‘/Users/***/R/知乎1001位姑娘/‘,i,‘.jpg‘)
    download.file( urltt[i,1],destfile=tmp)
    print(paste0(‘第‘,i,‘张图片已经下载完毕‘))
    }
#点进几个答案和抓取的图对比,顺序是对的,也抓全了。
#这些图片是来源与哪些优秀的知乎问题??
get.ques <- function(pgnum){
    url <- paste0(‘http://www.zhihu.com/collection/26348030?page=‘,pgnum)
    #url <- ‘http://www.zhihu.com/collection/26348030?page=1‘
    title <- url%>%html_session()%>%html_nodes(‘div.zm-item h2.zm-item-title a‘)%>%html_text()%>%as.data.frame(stringsAsFactors=F)
    return(title)
}
title <- data.frame()
for(i in 1:5){
    title <- rbind(title,get.ques(i))
}

  

抓取过程:

总结:??。

时间: 2024-08-25 19:35:07

1001位知乎姑娘的相关文章

百度地图十一出行预测被吐槽不准 知乎网友惊讶有人信百度

节前,百度地图与高德地图各自发布了一份"十一出行预测"报告,双方均对国庆期间的道路拥堵情况作了预测.但今日有知乎网友发现,在这两份预测报告中,百度地图的预测几乎完全失准,而高德地图的预测几乎合乎现实状况.针对百度地图的失准预测情况,有网友在知乎上发起讨论话题,惊讶居然还有人相信百度地图的准确度!? 知乎讨论话题截图 通过查询消息得知,原来在9月27日的时候,百度地图与人民网舆情监测室联合发布了<2016十一出行预测大数据报告>,该报告内容为百度地图利用自身大数据预测了今年十

数字序列中某一位的数字

数字按照0123456789101112131415161718192021-的顺序排列.第5位(从0开始计数)为5,第13位为1,第19位为4-- 求任意第n位对应的数字. 思路: 直观方法做枚举.每枚举一个数字的时候,求出该数字是几位数,并把数字的位数和前面的所有数字的位数相加.当累加的数位大于n时,那么第n位数字一定在这个数字里. 以第15位数字2为例(2隶属与12,两位数,位于12从左侧以0号开始下标为1的位置) 步骤1:首先确定该数字是属于几位数的; 如果是一位数,n<9;如果是两位数

一些位运算的技巧

参考自:https://blog.csdn.net/deaidai/article/details/78167367 奇技淫巧 1.技巧一:用于消去x的最后一位的1 x & (x-1) x = 1100 x-1 = 1011 x & (x-1) = 1000 1.1.应用一 用O(1)时间检测整数n是否是2的幂次. 思路解析:N如果是2的幂次,则N满足两个条件.1.N>02.N的二进制表示中只有一个1一位N的二进制表示中只有一个1,所以使用N&(N-1)将唯一的一个1消去.如

Vlog|中國風&#183;民國時光中奔跑的江南姑娘

過春風十里,盡薺麥青青,初夏睡起 梅子流酸濺齒牙,芭蕉分綠上窗紗.如畫中江南裡,走來一位民國姑娘. 原文地址:https://www.cnblogs.com/unnu/p/12316321.html

57. 数字序列中某一位的数字 (不懂)

算法1 以第15位数字1为例(1隶属与12,两位数,位于12从左侧以0号开始下标为0的位置)步骤1:首先确定该数字是属于几位数的;如果是一位数,n<9;如果是两位数,n<9+90X2=189;说明是两位数.因为是从0开始数数.0-9可以表示10个数字,从0开始数可以表示到9.10-99一共有90X2个数字,所以数到两位数能够数到9+90X2=189.步骤2:确定该数字属于哪个数.10+(15-10)/2= 12.步骤3:确定是该数中哪一位.15-10-(12-10)*2-1 = 0, 所以位于

大海扬波,靠地球自转、潮汐和飓风

忠诚,就忠诚自己的土壤: 追求,就追求自己的理想. --引自友人的诗 这是一曲振奋人心的搏斗之歌.它的主旋律,就是祖国的荣誉高于一切! 人们把体育比喻为一个民族精神的橱窗.那么,就让我们打开中国女排这个小小的窗口,看一看我们中华民族应有的精神风貌吧! 挥动黄手绢唱的歌 公元一千九百七十七年深秋.苍茫的暮色,笼罩着日本的商业都市大阪. 中国女排姑娘们乘坐的大型轿车,顺着五光十色的街道缓缓向前行驶. 多彩的夜景,与中国姑娘们喜悦的心境是相吻合的.今晚,一九七七年世界杯排球赛进入最后一个高潮--发奖.

第五回 菁菁岁月可堪一叙 琴瑟合奏难敌世情[林大帅作品连载]

第五回  菁菁岁月可堪一叙 琴瑟合奏难敌世情诗曰:       自惭粗鄙言情深,日后读经知窄门.        旷典仍无超度道.何如知己共温存?        话说林二探头走出糕点铺之后,方才想那旧时光,情不能己,这时却脚下绵绵.记得这石头路后面还有家“狼狗店”,又朝向北一转,又是一个巷口.这“狼狗店”不过有两间木房大,朝外半截窗台,上面安着窗户.当日这窗底下养只狼狗,大家也混叫它“狼狗店”,这店里以东洋游戏机营生,如那<恐龙快打>,<三国志>.当日求学文会,这店里林二是时常落脚的

年轻人,“砖砖瓦瓦”不应该成为你的梦想!

一想到房市,根本没有心思想房事 房价,我如何专心工作! 相信这些天,大家都在被雄安新区所刷屏.其中最多的新闻就是,房价! 24小时,从4千到4万.一夜之间,雄安新区又把中国的房价推向高潮! 国家的"捆绑销售"让人痛苦,如果只是个房子,其实大家不会多么想去买.但,如今的房子,已经意味着: ● 是否能够上户口 ● 孩子是否有优秀的教育机会 ● 投机/投资 ● 彰显社会地位 这些年,绝大多数人手里的货币都流入到了哪里?大学毕业留在大城市的年轻人,倾全家之力也想在那里买下一套房:三线城市拥有多

哪些行为让你觉得对方很高级很有教养?

知乎提问:哪些行为会让你觉得对方很高级很有教养? 突然发现,原来从很小的时候开始,吃饭不吧唧嘴,手部接触异性朋友裸露部位,包括非礼勿视到后来长大了吸烟前征求同意和避开孕妇儿童这些应该属于{日常行为}范畴的行为竟然在其他人眼中已经足够成为了[有教养][很高级]的行为模范了么? 希望列位知友能多多举例,那些时刻那些人的哪些行为会令你觉得[有教养][很高级] 知友@绝烟尘 顺不浪,逆不喷.   知友@罗一觉: 今天我们家搬家,家父带着刚刚实习下班的我把人去楼空的老房子里里外外打扫了一遍,厨房和洗手间就