通過(guò)關(guān)鍵詞采集文章采集api
用R搜集和映射臉書(shū)數據的初學(xué)者向導
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 177 次瀏覽 ? 2020-08-17 01:01
學(xué)習使用 R 的 twitteR 和 leaflet 包, 你就可以把任何話(huà)題的推文定位畫(huà)在地圖上。
當我開(kāi)始學(xué)習 R ,我也須要學(xué)習怎么出于研究的目的地搜集臉書(shū)數據并對其進(jìn)行映射。盡管網(wǎng)上關(guān)于這個(gè)話(huà)題的信息好多,但我發(fā)現無(wú)法理解哪些與搜集并映射臉書(shū)數據相關(guān)。我除了是個(gè) R 菜鳥(niǎo),而且對各類(lèi)教程中技術(shù)名詞不熟悉。但雖然困難重重,我成功了!在這個(gè)教程里,我將以一種菜鳥(niǎo)程序員都能讀懂的方法來(lái)功略怎么搜集臉書(shū)數據并來(lái)臨展如今地圖中。
創(chuàng )建應用程序
如果你沒(méi)有臉書(shū)賬號,首先你須要 注冊一個(gè)。然后,到 創(chuàng )建一個(gè)容許你搜集臉書(shū)數據的應用程序。別擔心,創(chuàng )建應用程序十分簡(jiǎn)單。你創(chuàng )建的應用程序會(huì )與臉書(shū)應用程序插口(API)相連。 想象 API 是一個(gè)多功能電子個(gè)人助手。你可以使用 API 讓其它程序幫你做事。這樣一來(lái),你可以接入臉書(shū) API 令其搜集數據。只需確保不要懇求太多,因為臉書(shū)數據懇求次數是有限制 的。
采集推文有兩個(gè)可用的 API 。你若果做一次性的推文搜集,那么使用 REST API. 若是想在特定時(shí)間內持續搜集,可以用 streaming API。教程中我主要使用 REST API。
創(chuàng )建應用程序以后,前往 Keys and Access Tokens 標簽。你須要 Consumer Key (API key)、 Consumer Secret (API secret)、 Access Token 和 Access Token Secret 才能在 R 中訪(fǎng)問(wèn)你的應用程序。
采集臉書(shū)數據
下一步是打開(kāi) R 準備寫(xiě)代碼。對于初學(xué)者,我推薦使用 RStudio,這是 R 的集成開(kāi)發(fā)環(huán)境 (IDE) 。我發(fā)覺(jué) RStudio 在解決問(wèn)題和測試代碼時(shí)很實(shí)用。 R 有訪(fǎng)問(wèn)該 REST API 的包叫 twitteR。
打開(kāi) RStudio 并新建 RScript。做好這種以后,你須要安裝和加載 twitteR 包:
install.packages("twitteR")#安裝TwitteRlibrary(twitteR)#載入TwitteR
安裝并載入 twitteR 包然后,你得輸入上文提到的應用程序的 API 信息:
api_key""#在冒號內裝入你的APIkeyapi_secret""#在冒號內裝入你的APIsecrettokentoken""#在冒號內裝入你的tokentoken_secret""#在冒號內裝入你的tokensecret
接下來(lái),連接臉書(shū)訪(fǎng)問(wèn) API:
setup_twitter_oauth(api_key,api_secret,token,token_secret)
我們來(lái)試試使臉書(shū)搜索有關(guān)社區新苑和農夫市場(chǎng):
tweets"communitygardenOR#communitygardenORfarmersmarketOR#farmersmarket",n=200,lang="en")
這個(gè)代碼意思是搜索前 200 篇 (n = 200) 英文 (lang = "en") 的推文, 包括關(guān)鍵詞 community garden 或 farmers market 或任何提到這種關(guān)鍵詞的話(huà)題標簽。
推特搜索完成以后,在數據框中保存你的結果:
tweets.df
為了用推文創(chuàng )建地圖,你須要搜集的導入為 .csv 文件:
write.csv(tweets.df,"C:\Users\YourName\Documents\ApptoMap\tweets.csv")#anexampleofafileextensionofthefolderinwhichyouwanttosavethe.csvfile.
運行前確保 R 代碼已保存之后繼續進(jìn)行下一步。.
生成地圖
現在你有了可以展示在地圖上的數據。在此教程中,我們將用一個(gè) R 包 Leaflet 做一個(gè)基本的應用程序,這是一個(gè)生成交互式地圖的熱門(mén) JavaScript 庫。 Leaflet 使用 magrittr 管道運算符 (%>%), 由于其句型自然,易于寫(xiě)代碼。剛接觸可能有點(diǎn)奇怪,但它確實(shí)增加了寫(xiě)代碼的工作量。
為了清晰起見(jiàn),在 RStudio 打開(kāi)一個(gè)新的 R 腳本安裝這種包:
install.packages("leaflet")install.packages("maps")library(leaflet)library(maps)
現在須要一個(gè)路徑使 Leaflet 訪(fǎng)問(wèn)你的數據:
read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv",stringsAsFactors=FALSE)
stringAsFactors = FALSE 意思是保留信息,不將它轉化成 factors。 (想了解 factors,讀這篇文章"stringsAsFactors: An unauthorized biography", 作者 Roger Peng)
是時(shí)侯制做你的 Leaflet 地圖了。我們將使用 OpenStreetMap基本地圖來(lái)做你的地圖:
m%addTiles()
我們在基本地圖上加個(gè)圈。對于 lng 和 lat,輸入收錄推文的經(jīng)緯度的列名,并在上面加個(gè)~。 ~longitude 和 ~latitude 指向你的 .csv 文件中與列名:
m%>%addCircles(lng=~longitude,lat=~latitude,popup=mymap$type,weight=8,radius=40,color="#fb3004",stroke=TRUE,fillOpacity=0.8)
運行你的代碼。會(huì )彈出網(wǎng)頁(yè)瀏覽器并展示你的地圖。這是我后面搜集的推文的地圖:
推文定位地圖
帶定位的推文地圖,使用了 Leaflet 和 OpenStreetMap CC-BY-SA
雖然你可能會(huì )對地圖上的圖文數目這么之小倍感驚奇,通常只有 1% 的推文記錄了地理編碼。我搜集了總量為 366 的推文,但只有 10(大概總推文的 3%)是記錄了地理編碼的。如果你為得到記錄了地理編碼的推文而困惑,改變搜索關(guān)鍵詞瞧瞧能不能得到更好的結果。
總結
對于初學(xué)者,把以上所有碎片結合上去,從臉書(shū)數據生成一個(gè) Leaflet 地圖可能太艱辛。 這個(gè)教程基于我完成這個(gè)任務(wù)的經(jīng)驗,我希望它能使你的學(xué)習過(guò)程顯得更輕松。
(題圖:瓊斯·貝克. CC BY-SA 4.0. 來(lái)源: Cloud, Globe. Both CC0.)
作者:Dorris Scott 查看全部
用R搜集和映射臉書(shū)數據的初學(xué)者向導

學(xué)習使用 R 的 twitteR 和 leaflet 包, 你就可以把任何話(huà)題的推文定位畫(huà)在地圖上。
當我開(kāi)始學(xué)習 R ,我也須要學(xué)習怎么出于研究的目的地搜集臉書(shū)數據并對其進(jìn)行映射。盡管網(wǎng)上關(guān)于這個(gè)話(huà)題的信息好多,但我發(fā)現無(wú)法理解哪些與搜集并映射臉書(shū)數據相關(guān)。我除了是個(gè) R 菜鳥(niǎo),而且對各類(lèi)教程中技術(shù)名詞不熟悉。但雖然困難重重,我成功了!在這個(gè)教程里,我將以一種菜鳥(niǎo)程序員都能讀懂的方法來(lái)功略怎么搜集臉書(shū)數據并來(lái)臨展如今地圖中。
創(chuàng )建應用程序
如果你沒(méi)有臉書(shū)賬號,首先你須要 注冊一個(gè)。然后,到 創(chuàng )建一個(gè)容許你搜集臉書(shū)數據的應用程序。別擔心,創(chuàng )建應用程序十分簡(jiǎn)單。你創(chuàng )建的應用程序會(huì )與臉書(shū)應用程序插口(API)相連。 想象 API 是一個(gè)多功能電子個(gè)人助手。你可以使用 API 讓其它程序幫你做事。這樣一來(lái),你可以接入臉書(shū) API 令其搜集數據。只需確保不要懇求太多,因為臉書(shū)數據懇求次數是有限制 的。
采集推文有兩個(gè)可用的 API 。你若果做一次性的推文搜集,那么使用 REST API. 若是想在特定時(shí)間內持續搜集,可以用 streaming API。教程中我主要使用 REST API。
創(chuàng )建應用程序以后,前往 Keys and Access Tokens 標簽。你須要 Consumer Key (API key)、 Consumer Secret (API secret)、 Access Token 和 Access Token Secret 才能在 R 中訪(fǎng)問(wèn)你的應用程序。
采集臉書(shū)數據
下一步是打開(kāi) R 準備寫(xiě)代碼。對于初學(xué)者,我推薦使用 RStudio,這是 R 的集成開(kāi)發(fā)環(huán)境 (IDE) 。我發(fā)覺(jué) RStudio 在解決問(wèn)題和測試代碼時(shí)很實(shí)用。 R 有訪(fǎng)問(wèn)該 REST API 的包叫 twitteR。
打開(kāi) RStudio 并新建 RScript。做好這種以后,你須要安裝和加載 twitteR 包:
install.packages("twitteR")#安裝TwitteRlibrary(twitteR)#載入TwitteR
安裝并載入 twitteR 包然后,你得輸入上文提到的應用程序的 API 信息:
api_key""#在冒號內裝入你的APIkeyapi_secret""#在冒號內裝入你的APIsecrettokentoken""#在冒號內裝入你的tokentoken_secret""#在冒號內裝入你的tokensecret
接下來(lái),連接臉書(shū)訪(fǎng)問(wèn) API:
setup_twitter_oauth(api_key,api_secret,token,token_secret)
我們來(lái)試試使臉書(shū)搜索有關(guān)社區新苑和農夫市場(chǎng):
tweets"communitygardenOR#communitygardenORfarmersmarketOR#farmersmarket",n=200,lang="en")
這個(gè)代碼意思是搜索前 200 篇 (n = 200) 英文 (lang = "en") 的推文, 包括關(guān)鍵詞 community garden 或 farmers market 或任何提到這種關(guān)鍵詞的話(huà)題標簽。
推特搜索完成以后,在數據框中保存你的結果:
tweets.df
為了用推文創(chuàng )建地圖,你須要搜集的導入為 .csv 文件:
write.csv(tweets.df,"C:\Users\YourName\Documents\ApptoMap\tweets.csv")#anexampleofafileextensionofthefolderinwhichyouwanttosavethe.csvfile.
運行前確保 R 代碼已保存之后繼續進(jìn)行下一步。.
生成地圖
現在你有了可以展示在地圖上的數據。在此教程中,我們將用一個(gè) R 包 Leaflet 做一個(gè)基本的應用程序,這是一個(gè)生成交互式地圖的熱門(mén) JavaScript 庫。 Leaflet 使用 magrittr 管道運算符 (%>%), 由于其句型自然,易于寫(xiě)代碼。剛接觸可能有點(diǎn)奇怪,但它確實(shí)增加了寫(xiě)代碼的工作量。
為了清晰起見(jiàn),在 RStudio 打開(kāi)一個(gè)新的 R 腳本安裝這種包:
install.packages("leaflet")install.packages("maps")library(leaflet)library(maps)
現在須要一個(gè)路徑使 Leaflet 訪(fǎng)問(wèn)你的數據:
read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv",stringsAsFactors=FALSE)
stringAsFactors = FALSE 意思是保留信息,不將它轉化成 factors。 (想了解 factors,讀這篇文章"stringsAsFactors: An unauthorized biography", 作者 Roger Peng)
是時(shí)侯制做你的 Leaflet 地圖了。我們將使用 OpenStreetMap基本地圖來(lái)做你的地圖:
m%addTiles()
我們在基本地圖上加個(gè)圈。對于 lng 和 lat,輸入收錄推文的經(jīng)緯度的列名,并在上面加個(gè)~。 ~longitude 和 ~latitude 指向你的 .csv 文件中與列名:
m%>%addCircles(lng=~longitude,lat=~latitude,popup=mymap$type,weight=8,radius=40,color="#fb3004",stroke=TRUE,fillOpacity=0.8)
運行你的代碼。會(huì )彈出網(wǎng)頁(yè)瀏覽器并展示你的地圖。這是我后面搜集的推文的地圖:

推文定位地圖
帶定位的推文地圖,使用了 Leaflet 和 OpenStreetMap CC-BY-SA
雖然你可能會(huì )對地圖上的圖文數目這么之小倍感驚奇,通常只有 1% 的推文記錄了地理編碼。我搜集了總量為 366 的推文,但只有 10(大概總推文的 3%)是記錄了地理編碼的。如果你為得到記錄了地理編碼的推文而困惑,改變搜索關(guān)鍵詞瞧瞧能不能得到更好的結果。
總結
對于初學(xué)者,把以上所有碎片結合上去,從臉書(shū)數據生成一個(gè) Leaflet 地圖可能太艱辛。 這個(gè)教程基于我完成這個(gè)任務(wù)的經(jīng)驗,我希望它能使你的學(xué)習過(guò)程顯得更輕松。
(題圖:瓊斯·貝克. CC BY-SA 4.0. 來(lái)源: Cloud, Globe. Both CC0.)
作者:Dorris Scott
Facebook內容采集/用戶(hù)信息數據抓取API爬蟲(chóng)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 1906 次瀏覽 ? 2020-08-16 21:38
上個(gè)月老朋友給我介紹了一個(gè)可以采Facebook內容和用戶(hù)信息的第三方API爬蟲(chóng)提供商iDataAPI,連續一周的百萬(wàn)條級別測試發(fā)覺(jué)穩定性不錯,準備加入到下半年向省里申報的海外信息數據檢測項目當中。
Facebook官方即使提供了Graph API,不過(guò)好多信息在最新版本的API中是不提供的。比如按照關(guān)鍵字搜索用戶(hù)發(fā)貼等等。通過(guò)PC端的web頁(yè)面抓取難度也很大,因為Facebook的頁(yè)面使用了大量的js腳本動(dòng)態(tài)加載數據,所以據說(shuō)她們研制了云端分布式&手機端抓取數據的爬蟲(chóng),就太感興趣試一試,測試結果符合預期。
我們主要用到的功能如下:
根據關(guān)鍵字抓取用戶(hù)的時(shí)間線(xiàn)抓取某用戶(hù)的資料抓取某用戶(hù)的好友抓取某用戶(hù)的貼子
通過(guò)使用這幾項功能最終可以生成一個(gè)關(guān)系網(wǎng)路,為后序的NLP工作打下基礎?;谶@個(gè)API爬蟲(chóng),后續進(jìn)一步接入輿情監測,情感剖析,意見(jiàn)挖掘等等。
這個(gè)iDataAPI提供包括一個(gè)完整的web控制界面,可以在瀏覽器中測試爬蟲(chóng)(facebook、twitter、微博、youtube...測了都很不多的,難得),后臺可以完整的創(chuàng )建任務(wù)、查看日志、查看數據,普通開(kāi)發(fā)者注冊就送錢(qián)免費測試了。只是目前項目還在申報期,我們研究院須要的量級比較大,等前面簽個(gè)協(xié)議包月,加上TWITTER這種,每天恐怕得采集個(gè)千萬(wàn)條。
返回示例值(FACEBOOK帖子){ "hasNext": true, "retcode": "000000", "appCode": "facebook", "dataType": "post", "pageToken": "enc_AdBhgxzOwy0fZBFjW6GXwbjJDRUca1SS5ccSTKp4TvchMAF3De0qdfVEC8sZAcCQZCw1CtORi9eLls3iJvJJk8PlNIQ|1493425239", "data": [ { "posterId": "4", "commentCount": 76221, "posterScreenName": "Mark Zuckerberg", "title": null, "url": "https:\/\/www.facebook.com\/4_10103685865597591", "imageUrls": [ "https:\/\/fb-s-d-a.akamaihd.net\/h-ak-xtp1\/v\/t15.0-10\/s720x720\/18223192_10103685908017581_8465195272706719744_n.jpg?_nc_ad=z-m&oh=e0736750f4882bed329ad89749849443&oe=59C22C86&__gda__=1505738387_e11048d689aba9e12e3fef771eab44f5" ], "originUrl": "https:\/\/www.facebook.com\/zuck\/videos\/10103685865597591\/", "geoPoint": "37.484, -122.149", "mediaType": "video", "publishDate": 1493494203, "likeCount": 173477, "content": "Part II of driving through South Bend, Indiana with Mayor Pete Buttigieg.", "parentPostId": "3791568f35f4c067d6403a5c344136cc", "shareCount": 9506, "parentAppCode": "facebook", "publishDateStr": "2017-04-29T19:30:03", "id": "4_10103685865597591", "origin": false, "originContent": null } ]}
返回示例值(FACEBOOK用戶(hù)信息){ "hasNext": false, "retcode": "000000", "appCode": "facebook", "dataType": "profile", "pageToken": null, "data": [ { "userName": "zuck", "idType": "user", "educations": [ { "schoolName": "Ardsley High School" }, { "schoolName": "Phillips Exeter Academy" }, { "schoolName": "Harvard University" } ], "works": [ { "employer": "Chan Zuckerberg Initiative" }, { "employer": "Facebook" } ], "idVerified": null, "friendCount": null, "idVerifiedInfo": null, "url": "https:\/\/www.facebook.com\/4", "gender": "m", "fansCount": null, "avatarUrl": "https:\/\/fb-s-c-a.akamaihd.net\/h-ak-fbx\/v\/t34.0-1\/p50x50\/16176889_112685309244626_578204711_n.jpg?efg=eyJkdHciOiIifQ==&_nc_ad=z-m&oh=1d19d2bcf1881ee7deaaf7cf777cb194&oe=597DA91E&__gda__=1501340296_20445fee97f7852820dbda04f427e5d8", "followCount": null, "viewCount": null, "postCount": null, "birthday": null, "location": "Palo Alto, California", "likeCount": null, "id": "4", "biography": "I'm trying to make the world a more open place.", "screenName": "Mark Zuckerberg" } ]}
API平臺:
返回參數:
后臺: 查看全部
Facebook內容采集/用戶(hù)信息數據抓取API爬蟲(chóng)
上個(gè)月老朋友給我介紹了一個(gè)可以采Facebook內容和用戶(hù)信息的第三方API爬蟲(chóng)提供商iDataAPI,連續一周的百萬(wàn)條級別測試發(fā)覺(jué)穩定性不錯,準備加入到下半年向省里申報的海外信息數據檢測項目當中。
Facebook官方即使提供了Graph API,不過(guò)好多信息在最新版本的API中是不提供的。比如按照關(guān)鍵字搜索用戶(hù)發(fā)貼等等。通過(guò)PC端的web頁(yè)面抓取難度也很大,因為Facebook的頁(yè)面使用了大量的js腳本動(dòng)態(tài)加載數據,所以據說(shuō)她們研制了云端分布式&手機端抓取數據的爬蟲(chóng),就太感興趣試一試,測試結果符合預期。
我們主要用到的功能如下:
根據關(guān)鍵字抓取用戶(hù)的時(shí)間線(xiàn)抓取某用戶(hù)的資料抓取某用戶(hù)的好友抓取某用戶(hù)的貼子
通過(guò)使用這幾項功能最終可以生成一個(gè)關(guān)系網(wǎng)路,為后序的NLP工作打下基礎?;谶@個(gè)API爬蟲(chóng),后續進(jìn)一步接入輿情監測,情感剖析,意見(jiàn)挖掘等等。
這個(gè)iDataAPI提供包括一個(gè)完整的web控制界面,可以在瀏覽器中測試爬蟲(chóng)(facebook、twitter、微博、youtube...測了都很不多的,難得),后臺可以完整的創(chuàng )建任務(wù)、查看日志、查看數據,普通開(kāi)發(fā)者注冊就送錢(qián)免費測試了。只是目前項目還在申報期,我們研究院須要的量級比較大,等前面簽個(gè)協(xié)議包月,加上TWITTER這種,每天恐怕得采集個(gè)千萬(wàn)條。
返回示例值(FACEBOOK帖子){ "hasNext": true, "retcode": "000000", "appCode": "facebook", "dataType": "post", "pageToken": "enc_AdBhgxzOwy0fZBFjW6GXwbjJDRUca1SS5ccSTKp4TvchMAF3De0qdfVEC8sZAcCQZCw1CtORi9eLls3iJvJJk8PlNIQ|1493425239", "data": [ { "posterId": "4", "commentCount": 76221, "posterScreenName": "Mark Zuckerberg", "title": null, "url": "https:\/\/www.facebook.com\/4_10103685865597591", "imageUrls": [ "https:\/\/fb-s-d-a.akamaihd.net\/h-ak-xtp1\/v\/t15.0-10\/s720x720\/18223192_10103685908017581_8465195272706719744_n.jpg?_nc_ad=z-m&oh=e0736750f4882bed329ad89749849443&oe=59C22C86&__gda__=1505738387_e11048d689aba9e12e3fef771eab44f5" ], "originUrl": "https:\/\/www.facebook.com\/zuck\/videos\/10103685865597591\/", "geoPoint": "37.484, -122.149", "mediaType": "video", "publishDate": 1493494203, "likeCount": 173477, "content": "Part II of driving through South Bend, Indiana with Mayor Pete Buttigieg.", "parentPostId": "3791568f35f4c067d6403a5c344136cc", "shareCount": 9506, "parentAppCode": "facebook", "publishDateStr": "2017-04-29T19:30:03", "id": "4_10103685865597591", "origin": false, "originContent": null } ]}
返回示例值(FACEBOOK用戶(hù)信息){ "hasNext": false, "retcode": "000000", "appCode": "facebook", "dataType": "profile", "pageToken": null, "data": [ { "userName": "zuck", "idType": "user", "educations": [ { "schoolName": "Ardsley High School" }, { "schoolName": "Phillips Exeter Academy" }, { "schoolName": "Harvard University" } ], "works": [ { "employer": "Chan Zuckerberg Initiative" }, { "employer": "Facebook" } ], "idVerified": null, "friendCount": null, "idVerifiedInfo": null, "url": "https:\/\/www.facebook.com\/4", "gender": "m", "fansCount": null, "avatarUrl": "https:\/\/fb-s-c-a.akamaihd.net\/h-ak-fbx\/v\/t34.0-1\/p50x50\/16176889_112685309244626_578204711_n.jpg?efg=eyJkdHciOiIifQ==&_nc_ad=z-m&oh=1d19d2bcf1881ee7deaaf7cf777cb194&oe=597DA91E&__gda__=1501340296_20445fee97f7852820dbda04f427e5d8", "followCount": null, "viewCount": null, "postCount": null, "birthday": null, "location": "Palo Alto, California", "likeCount": null, "id": "4", "biography": "I'm trying to make the world a more open place.", "screenName": "Mark Zuckerberg" } ]}
API平臺:
返回參數:
后臺:
一篇文章帶你用Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)現網(wǎng)易云音樂(lè )歌詞抓取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 196 次瀏覽 ? 2020-08-15 00:21
前幾天小編給你們分享了數據可視化剖析,在文尾提到了網(wǎng)易云音樂(lè )歌詞爬取,今天小編給你們分享網(wǎng)易云音樂(lè )歌詞爬取技巧。本文的總體思路如下:找到正確的URL,獲取源碼;利用bs4解析源碼,獲取歌曲名和歌曲ID;調用網(wǎng)易云歌曲API,獲取歌詞;將歌詞寫(xiě)入文件,并存入本地。本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有/#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在 查看全部

前幾天小編給你們分享了數據可視化剖析,在文尾提到了網(wǎng)易云音樂(lè )歌詞爬取,今天小編給你們分享網(wǎng)易云音樂(lè )歌詞爬取技巧。本文的總體思路如下:找到正確的URL,獲取源碼;利用bs4解析源碼,獲取歌曲名和歌曲ID;調用網(wǎng)易云歌曲API,獲取歌詞;將歌詞寫(xiě)入文件,并存入本地。本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:

本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。

一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有/#號的。廢話(huà)不多說(shuō),直接上代碼。

本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
《商務(wù)數據采集與處理》教學(xué)大綱.doc 4頁(yè)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 333 次瀏覽 ? 2020-08-12 00:37
H4研究5使用現代工具Excel、Database、CSV、TXT、電子商務(wù)平臺、Web爬蟲(chóng)、API、Java、Python、PHP、為優(yōu)采云數據采集系統H6工程與社會(huì )7環(huán)境和可持續發(fā)展8職業(yè)規范培養認真、謹慎的職業(yè)精神;提升各類(lèi)工具的使用熟練度和精確度H9個(gè)人和團隊10溝通11項目管理12終生學(xué)習了解新的各種商務(wù)數據采集與處理軟件,不斷提升各種商務(wù)數據采集與處理軟件的操作能力H注:“課程教學(xué)要求”欄中內容為針對該課程適用專(zhuān)業(yè)的專(zhuān)業(yè)結業(yè)要求與相關(guān)教學(xué)要求的具體描述?!瓣P(guān)聯(lián)程度”欄中字母表示兩者關(guān)聯(lián)程度。關(guān)聯(lián)程度按高關(guān)聯(lián)、中關(guān)聯(lián)、低關(guān)聯(lián)三檔分別表示為“H”“M”或“L”?!罢n程教學(xué)要求”及“關(guān)聯(lián)程度”中的空白欄表示該課程與所對應的專(zhuān)業(yè)結業(yè)要求條目不相關(guān)。四、課程教學(xué)內容章節名稱(chēng)主要內容重難點(diǎn)關(guān)鍵詞學(xué)時(shí)類(lèi)型1商務(wù)數據采集概述商務(wù)數據的定義及類(lèi)型商務(wù)數據的主要來(lái)源及用途商務(wù)數據采集和處理的基本技巧商務(wù)數據的定義及類(lèi)型,商務(wù)數據的主要來(lái)源及用途,商務(wù)數據采集和處理的基本技巧3理論2商務(wù)數據采集工具及應用商務(wù)數據采集工具介紹爬蟲(chóng)軟件在商務(wù)數據剖析中的應用Python 爬蟲(chóng)在商務(wù)數據采集中的應用數據采集方法,常用的數據采集工具,Python 爬蟲(chóng)的優(yōu)劣勢3理論+操作3數據采集方法與采集器了解數據采集器數據采集器的安裝與界面數據采集器的優(yōu)勢,安裝注冊數據采集器2理論+操作4數據采集器應用簡(jiǎn)易采集模式及實(shí)例向導模式及實(shí)例自定義采集模式使用簡(jiǎn)易采集模式進(jìn)行常見(jiàn)網(wǎng)站數據采集,使用自定義采集模式進(jìn)行列表詳情頁(yè)數據采集,掌握在規則中對采集內容做初步篩選和清洗操作3理論+操作5數據采集器中級應用屏蔽網(wǎng)頁(yè)廣告切換瀏覽器版本嚴禁加載圖片增量采集智能防封登陸采集網(wǎng)頁(yè)源碼提取圖片、附件的采集與下載循環(huán)切換下拉框聯(lián)通鍵盤(pán)表針到元素上數據采集器的中級功能,增量采集和智能防封的應對方法,增量采集的形式5理論+操作6數據采集器定位方法及云采集XPath 數據定位云采集XPath 書(shū)寫(xiě)方式,云采集功能與使用2理論+操作7數據采集器采集實(shí)例數據采集器應用領(lǐng)域金融網(wǎng)站、新聞網(wǎng)站、職場(chǎng)急聘、店鋪位置的數據采集競品數據、企業(yè)產(chǎn)品相關(guān)評價(jià)、公眾號文章信息的采集在實(shí)訓中獲得數據采集能力,熟悉各種數據采集領(lǐng)域典型網(wǎng)站4理論+操作8數據處理數據清洗與加工數據處理的定義及作用,常見(jiàn)的數據清洗方式,對各種數據進(jìn)行標準化加工處理2理論+操作五、考核要求及成績(jì)評定序號成績(jì)類(lèi)別考評形式考評要求權重(%)備注1期終成績(jì)期末考試大作業(yè)50百分制,60分為及格2平常成績(jì)實(shí)戰訓練10次40優(yōu)、良、中、及格、不及格3平常表現缺勤情況10兩次未出席課程則未能獲得學(xué)分注:此表中內容為該課程的全部考評方法及其相關(guān)信息。六、學(xué)生學(xué)習建議1.理論配合實(shí)戰訓練進(jìn)行學(xué)習,提高中學(xué)生在商務(wù)數據剖析與應用專(zhuān)業(yè)課程中數據采集和處理問(wèn)題的能力;2.在條件容許的情況下,可以結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。3.培養、提升中學(xué)生按照不同須要進(jìn)行處理和清洗數據的能力。 查看全部
《商務(wù)數據采集與處理》教學(xué)大綱課程信息課程名稱(chēng):《商務(wù)數據采集與處理》課程類(lèi)別:專(zhuān)業(yè)基礎課課程性質(zhì):必修計劃學(xué)時(shí):24計劃學(xué)分:3先修課程:無(wú)二、課程簡(jiǎn)介本書(shū)結合了一線(xiàn)大數據企業(yè)在商務(wù)數據上的采集和應用方法,從數據基礎、數據來(lái)源、數據采集到數據處理等方面展開(kāi)內容講解。本書(shū)融入了大量的實(shí)操案例,對學(xué)習目標進(jìn)行詳盡講解,反復加強“理論圍繞實(shí)操,實(shí)操推進(jìn)理論,真實(shí)把握技能”的教學(xué)理念。三、課程教學(xué)要求序號專(zhuān)業(yè)結業(yè)要求課程教學(xué)要求關(guān)聯(lián)程度1工程知識了解商務(wù)數據的基礎知識及來(lái)源、常規數據采集工具及應用,對商務(wù)數據以及數據采集有直觀(guān)認識,了解數據采集方法與采集器、數據采集器應用、數據采集器中級應用、數據采集器定位方法及云采集以及使用較為廣泛的采集器優(yōu)采云采集器,掌握在采集數據完成后怎樣進(jìn)行數據處理,根據不同須要進(jìn)行處理和清洗,使數據剖析結果更為確切。H2問(wèn)題剖析發(fā)覺(jué)商務(wù)數據采集與處理中存在的問(wèn)題,尋找出現問(wèn)題的誘因H3設計/開(kāi)發(fā)解決方案提升商務(wù)數據的基礎知識及來(lái)源、常規數據采集工具及應用,對商務(wù)數據以及數據采集有直觀(guān)認識,結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。
H4研究5使用現代工具Excel、Database、CSV、TXT、電子商務(wù)平臺、Web爬蟲(chóng)、API、Java、Python、PHP、為優(yōu)采云數據采集系統H6工程與社會(huì )7環(huán)境和可持續發(fā)展8職業(yè)規范培養認真、謹慎的職業(yè)精神;提升各類(lèi)工具的使用熟練度和精確度H9個(gè)人和團隊10溝通11項目管理12終生學(xué)習了解新的各種商務(wù)數據采集與處理軟件,不斷提升各種商務(wù)數據采集與處理軟件的操作能力H注:“課程教學(xué)要求”欄中內容為針對該課程適用專(zhuān)業(yè)的專(zhuān)業(yè)結業(yè)要求與相關(guān)教學(xué)要求的具體描述?!瓣P(guān)聯(lián)程度”欄中字母表示兩者關(guān)聯(lián)程度。關(guān)聯(lián)程度按高關(guān)聯(lián)、中關(guān)聯(lián)、低關(guān)聯(lián)三檔分別表示為“H”“M”或“L”?!罢n程教學(xué)要求”及“關(guān)聯(lián)程度”中的空白欄表示該課程與所對應的專(zhuān)業(yè)結業(yè)要求條目不相關(guān)。四、課程教學(xué)內容章節名稱(chēng)主要內容重難點(diǎn)關(guān)鍵詞學(xué)時(shí)類(lèi)型1商務(wù)數據采集概述商務(wù)數據的定義及類(lèi)型商務(wù)數據的主要來(lái)源及用途商務(wù)數據采集和處理的基本技巧商務(wù)數據的定義及類(lèi)型,商務(wù)數據的主要來(lái)源及用途,商務(wù)數據采集和處理的基本技巧3理論2商務(wù)數據采集工具及應用商務(wù)數據采集工具介紹爬蟲(chóng)軟件在商務(wù)數據剖析中的應用Python 爬蟲(chóng)在商務(wù)數據采集中的應用數據采集方法,常用的數據采集工具,Python 爬蟲(chóng)的優(yōu)劣勢3理論+操作3數據采集方法與采集器了解數據采集器數據采集器的安裝與界面數據采集器的優(yōu)勢,安裝注冊數據采集器2理論+操作4數據采集器應用簡(jiǎn)易采集模式及實(shí)例向導模式及實(shí)例自定義采集模式使用簡(jiǎn)易采集模式進(jìn)行常見(jiàn)網(wǎng)站數據采集,使用自定義采集模式進(jìn)行列表詳情頁(yè)數據采集,掌握在規則中對采集內容做初步篩選和清洗操作3理論+操作5數據采集器中級應用屏蔽網(wǎng)頁(yè)廣告切換瀏覽器版本嚴禁加載圖片增量采集智能防封登陸采集網(wǎng)頁(yè)源碼提取圖片、附件的采集與下載循環(huán)切換下拉框聯(lián)通鍵盤(pán)表針到元素上數據采集器的中級功能,增量采集和智能防封的應對方法,增量采集的形式5理論+操作6數據采集器定位方法及云采集XPath 數據定位云采集XPath 書(shū)寫(xiě)方式,云采集功能與使用2理論+操作7數據采集器采集實(shí)例數據采集器應用領(lǐng)域金融網(wǎng)站、新聞網(wǎng)站、職場(chǎng)急聘、店鋪位置的數據采集競品數據、企業(yè)產(chǎn)品相關(guān)評價(jià)、公眾號文章信息的采集在實(shí)訓中獲得數據采集能力,熟悉各種數據采集領(lǐng)域典型網(wǎng)站4理論+操作8數據處理數據清洗與加工數據處理的定義及作用,常見(jiàn)的數據清洗方式,對各種數據進(jìn)行標準化加工處理2理論+操作五、考核要求及成績(jì)評定序號成績(jì)類(lèi)別考評形式考評要求權重(%)備注1期終成績(jì)期末考試大作業(yè)50百分制,60分為及格2平常成績(jì)實(shí)戰訓練10次40優(yōu)、良、中、及格、不及格3平常表現缺勤情況10兩次未出席課程則未能獲得學(xué)分注:此表中內容為該課程的全部考評方法及其相關(guān)信息。六、學(xué)生學(xué)習建議1.理論配合實(shí)戰訓練進(jìn)行學(xué)習,提高中學(xué)生在商務(wù)數據剖析與應用專(zhuān)業(yè)課程中數據采集和處理問(wèn)題的能力;2.在條件容許的情況下,可以結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。3.培養、提升中學(xué)生按照不同須要進(jìn)行處理和清洗數據的能力。
iMacros for Chrome V10.4.28 漢化免費版
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 216 次瀏覽 ? 2020-08-11 23:49
【功能特色】
1、瀏覽器自動(dòng)化:通過(guò)InternetExplorer,Firefox和Chrome手動(dòng)執行任務(wù)。沒(méi)有新的腳本語(yǔ)言要學(xué)習,您可以對Web瀏覽器進(jìn)行完整的編程控制,因此雖然是最復雜的任務(wù)也可以編撰腳本。
2、Web測試:自動(dòng)執行任何網(wǎng)站技術(shù)(包括Java,Flash,Flex或Silverlight小程序和所有AJAX元素)的功能,性能和回歸測試,并捕獲精確的網(wǎng)頁(yè)響應時(shí)間。將宏導入到SeleniumWebDriver代碼。
3、數據提?。阂粋€(gè)完整的工具集,用于將Web數據屏蔽到數據庫,電子表格或任何其他應用程序中。iMacros可以在短短幾分鐘內手動(dòng)完成所需的所有Web搜集。
4、全功能Web瀏覽器API:iMacros企業(yè)版手動(dòng)安裝Web瀏覽器API,可從任何Windows編程或腳本語(yǔ)言完成Web瀏覽器控件。通過(guò)這種強悍的命令,您可以使用支持使用COM對象的任何Windows編程語(yǔ)言來(lái)控制iMacros。幾乎所有的Windows編程語(yǔ)言都支持這些技術(shù),包括免費的WindowsScriptingHost、VisualBasic6、VisualBasic.NET、C#、Java、Perl、Python、C++、ASP、PHP和ASP.NET。 查看全部
iMacros中文版是專(zhuān)為站長(cháng)用戶(hù)構建的一款特別不錯的Web自動(dòng)化軟件,該軟件功能強悍,它可以幫助使用者執行手動(dòng)填寫(xiě)表單、從網(wǎng)站中提取數據、自動(dòng)測試網(wǎng)站、自動(dòng)登入到網(wǎng)路郵箱以及手動(dòng)重復執行任務(wù)等操作,可大大提高使用者的任務(wù)完成效率,它可以通過(guò)靈活的腳本使用與多語(yǔ)言的程序插口來(lái)自動(dòng)執行復雜的任務(wù)。

【功能特色】
1、瀏覽器自動(dòng)化:通過(guò)InternetExplorer,Firefox和Chrome手動(dòng)執行任務(wù)。沒(méi)有新的腳本語(yǔ)言要學(xué)習,您可以對Web瀏覽器進(jìn)行完整的編程控制,因此雖然是最復雜的任務(wù)也可以編撰腳本。
2、Web測試:自動(dòng)執行任何網(wǎng)站技術(shù)(包括Java,Flash,Flex或Silverlight小程序和所有AJAX元素)的功能,性能和回歸測試,并捕獲精確的網(wǎng)頁(yè)響應時(shí)間。將宏導入到SeleniumWebDriver代碼。
3、數據提?。阂粋€(gè)完整的工具集,用于將Web數據屏蔽到數據庫,電子表格或任何其他應用程序中。iMacros可以在短短幾分鐘內手動(dòng)完成所需的所有Web搜集。
4、全功能Web瀏覽器API:iMacros企業(yè)版手動(dòng)安裝Web瀏覽器API,可從任何Windows編程或腳本語(yǔ)言完成Web瀏覽器控件。通過(guò)這種強悍的命令,您可以使用支持使用COM對象的任何Windows編程語(yǔ)言來(lái)控制iMacros。幾乎所有的Windows編程語(yǔ)言都支持這些技術(shù),包括免費的WindowsScriptingHost、VisualBasic6、VisualBasic.NET、C#、Java、Perl、Python、C++、ASP、PHP和ASP.NET。
(IE9)Internet Explorer 9.0 簡(jiǎn)體英文正式版
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 222 次瀏覽 ? 2020-08-11 21:08
瀏覽器版本較低,官方已停止升級維護,建議升級到更快、更安全的瀏覽器,點(diǎn)擊立刻下載。
IE9英文正式版是谷歌推出的ie9英文版本,internet explorer 9是谷歌支持標準最規范的IE瀏覽器。IE9改進(jìn)IE瀏覽器性能,IE9支持XP/win7,本站提供ie9中文版官方下載.
Internet Explorer 9 正式版 (IE9正式版)是谷歌最新一款I(lǐng)E瀏覽器,IE9在各方面都有急劇提高,給你全新的瀏覽體驗!例如:全新的新 JavaScript 引擎促使IE9的運算速率更快;新增GPU 硬件加速,大大提高IE的運行速率;IE9 子系統全面改進(jìn),極大增強了對 HTML、CSS 和 JavaScript 的解釋效率;IE9 支持最新的 HTML5、CSS3、SVG 和 DOM L2&L3;整合更多開(kāi)發(fā)工具……
IE9截圖1
軟件特色
1、速度更快:IE9支持GPU加速功能,用戶(hù)網(wǎng)頁(yè)瀏覽速率將更快;
2、清新界面:優(yōu)化后的用戶(hù)界面愈發(fā)簡(jiǎn)練,網(wǎng)頁(yè)內容得到突出;
3、與Windows 7完美結合:Win7和IE9是絕配,適配性更強;IE9支持將常用網(wǎng)站鎖定到任務(wù)欄,便攜瀏覽您喜歡的網(wǎng)站;
4、支持標準:規范了網(wǎng)頁(yè)標準,使得各網(wǎng)站能獲得更好的支持,從而給用戶(hù)帶來(lái)更優(yōu)越的操作體驗!
截圖2
功能介紹
1、ie9新JavaScript引擎
IE9全新外置的“Chakra JavaScript引擎”充分利用當下主流計算機配置的多核心CPU,優(yōu)化協(xié)同運算能力,編譯、執行速率更快。同時(shí)與DOM的緊密集成,使得網(wǎng)路應用運行更順暢,反應更迅速。
ie9新JavaScript引擎軟件截圖3
2、ie9GPU硬件加速
IE9將全面支持HTML5 GPU硬件加速,借助GPU的效能來(lái)渲染標準的Web內容,如文字、圖像、視頻、SVG(可縮放矢量圖形)等網(wǎng)路信息,減少CPU負荷,大大的提升瀏覽器的速率。開(kāi)發(fā)人員無(wú)需為GPU硬件加速特點(diǎn)重新編撰網(wǎng)站,直接提高圖形處理性能。
ie9GPU硬件加速軟件截圖4
3、ie9子系統優(yōu)化,提升協(xié)同處理效率
IE9子系統全面改進(jìn),極大增強了對HTML、CSS和JavaScript的解釋效率。將布局以及渲染等方面的資源更合理的分配和優(yōu)化,在降低對顯存和處理資源耗損的同時(shí),讓網(wǎng)頁(yè)呈現和網(wǎng)路應用程序的運行速率愈發(fā)順暢。
截圖5
4、ie9全新用戶(hù)界面
IE9帶來(lái)全新用戶(hù)界面——簡(jiǎn)單、清晰、有效,盡可能簡(jiǎn)化瀏覽器的外型元素和操作步驟——希望用戶(hù)才能最大限度的“忽略”IE9的“存在”,而將注意力全部沉溺在精彩的網(wǎng)路內容當中。
ie9全新用戶(hù)界面截圖6
5、ie9全面支持最新網(wǎng)路標準
IE9支持最新的HTML5、CSS3、SVG和DOM L2&L3,你可以充分利用這種技術(shù)詮釋你的網(wǎng)路創(chuàng )意,不必再針對不同瀏覽器編撰不同代碼,大幅度增加你的開(kāi)發(fā)時(shí)間和難度。
6、ie9整合更多開(kāi)發(fā)工具
與其他瀏覽器相比,IE9外置了更多強悍的開(kāi)發(fā)人員工具——包括JavaScript剖析工具、CSS編輯器和新的網(wǎng)路剖析器等。這些工具當你須要時(shí)就在手邊,方便你進(jìn)行開(kāi)發(fā)和調試,實(shí)現與IE9的全方位整合。
7、ie9先進(jìn)的網(wǎng)路開(kāi)發(fā)技術(shù)
IE9提供了一系列先進(jìn)技術(shù),如D2D DirectX圖形構架和圖形、色彩解碼器等,助你實(shí)現高清視頻和多媒體交互。搭配GPU圖形硬件加速,讓畫(huà)面質(zhì)量和流暢性達到質(zhì)的提高,為你搭建一個(gè)更好的平臺,來(lái)為你的用戶(hù)詮釋前所未有的視覺(jué)、聽(tīng)覺(jué)體驗。
截圖7
8、ie9是網(wǎng)站,也是一個(gè)Windows 7程序
利用最新的Windows應用程序插口(API),開(kāi)發(fā)者才能使用JavaScript來(lái)定義鍵盤(pán)右鍵快捷菜單、任務(wù)欄縮略圖、跳轉列表項和觸控等功能,使其與Windows 7操作系統完美整合,帶來(lái)新的瀏覽形式,讓用戶(hù)體驗上升到新的高度。
9、ie9兼容性模式
IE9使開(kāi)發(fā)人員來(lái)選擇瀏覽站點(diǎn)時(shí)所使用的模式,其中包括IE9標準模式、IE8文檔模式、 兼容視圖模式(IE7)或Quirks模式 (IE5)。如果用戶(hù)單擊兼容模式按鍵,網(wǎng)站將以開(kāi)發(fā)者事先指定的模式或兼容視圖模式(IE7)運行,保證向后的兼容性和網(wǎng)站升級時(shí)的靈活性。
截圖8
常見(jiàn)問(wèn)題
IE9支持哪些系統?
可用于全部 Windows Vista 和 Windows 7 版本。
怎么調整IE9 使用兼容模式?
1、打開(kāi)IE瀏覽器,點(diǎn)擊“工具”選項,選擇“兼容性視圖設置”選項。
2、進(jìn)入兼容性視圖設置以后,填入所須要設置兼容模式的網(wǎng)址,點(diǎn)擊添加,最后點(diǎn)擊關(guān)掉即可。
3、重新打開(kāi)經(jīng)過(guò)設置以后的網(wǎng)頁(yè),會(huì )聽(tīng)到地址欄前面有一個(gè)象破碎紙片一樣的圖標,說(shuō)明兼容模式早已設置成功,在工具的下拉菜單也同樣可以看見(jiàn)在兼容模式上面也就對勾,說(shuō)明網(wǎng)頁(yè)的兼容模式早已設置成功。
更新日志
修復部份bug 查看全部

瀏覽器版本較低,官方已停止升級維護,建議升級到更快、更安全的瀏覽器,點(diǎn)擊立刻下載。
IE9英文正式版是谷歌推出的ie9英文版本,internet explorer 9是谷歌支持標準最規范的IE瀏覽器。IE9改進(jìn)IE瀏覽器性能,IE9支持XP/win7,本站提供ie9中文版官方下載.
Internet Explorer 9 正式版 (IE9正式版)是谷歌最新一款I(lǐng)E瀏覽器,IE9在各方面都有急劇提高,給你全新的瀏覽體驗!例如:全新的新 JavaScript 引擎促使IE9的運算速率更快;新增GPU 硬件加速,大大提高IE的運行速率;IE9 子系統全面改進(jìn),極大增強了對 HTML、CSS 和 JavaScript 的解釋效率;IE9 支持最新的 HTML5、CSS3、SVG 和 DOM L2&L3;整合更多開(kāi)發(fā)工具……

IE9截圖1
軟件特色
1、速度更快:IE9支持GPU加速功能,用戶(hù)網(wǎng)頁(yè)瀏覽速率將更快;
2、清新界面:優(yōu)化后的用戶(hù)界面愈發(fā)簡(jiǎn)練,網(wǎng)頁(yè)內容得到突出;
3、與Windows 7完美結合:Win7和IE9是絕配,適配性更強;IE9支持將常用網(wǎng)站鎖定到任務(wù)欄,便攜瀏覽您喜歡的網(wǎng)站;
4、支持標準:規范了網(wǎng)頁(yè)標準,使得各網(wǎng)站能獲得更好的支持,從而給用戶(hù)帶來(lái)更優(yōu)越的操作體驗!

截圖2
功能介紹
1、ie9新JavaScript引擎
IE9全新外置的“Chakra JavaScript引擎”充分利用當下主流計算機配置的多核心CPU,優(yōu)化協(xié)同運算能力,編譯、執行速率更快。同時(shí)與DOM的緊密集成,使得網(wǎng)路應用運行更順暢,反應更迅速。

ie9新JavaScript引擎軟件截圖3
2、ie9GPU硬件加速
IE9將全面支持HTML5 GPU硬件加速,借助GPU的效能來(lái)渲染標準的Web內容,如文字、圖像、視頻、SVG(可縮放矢量圖形)等網(wǎng)路信息,減少CPU負荷,大大的提升瀏覽器的速率。開(kāi)發(fā)人員無(wú)需為GPU硬件加速特點(diǎn)重新編撰網(wǎng)站,直接提高圖形處理性能。

ie9GPU硬件加速軟件截圖4
3、ie9子系統優(yōu)化,提升協(xié)同處理效率
IE9子系統全面改進(jìn),極大增強了對HTML、CSS和JavaScript的解釋效率。將布局以及渲染等方面的資源更合理的分配和優(yōu)化,在降低對顯存和處理資源耗損的同時(shí),讓網(wǎng)頁(yè)呈現和網(wǎng)路應用程序的運行速率愈發(fā)順暢。

截圖5
4、ie9全新用戶(hù)界面
IE9帶來(lái)全新用戶(hù)界面——簡(jiǎn)單、清晰、有效,盡可能簡(jiǎn)化瀏覽器的外型元素和操作步驟——希望用戶(hù)才能最大限度的“忽略”IE9的“存在”,而將注意力全部沉溺在精彩的網(wǎng)路內容當中。

ie9全新用戶(hù)界面截圖6
5、ie9全面支持最新網(wǎng)路標準
IE9支持最新的HTML5、CSS3、SVG和DOM L2&L3,你可以充分利用這種技術(shù)詮釋你的網(wǎng)路創(chuàng )意,不必再針對不同瀏覽器編撰不同代碼,大幅度增加你的開(kāi)發(fā)時(shí)間和難度。
6、ie9整合更多開(kāi)發(fā)工具
與其他瀏覽器相比,IE9外置了更多強悍的開(kāi)發(fā)人員工具——包括JavaScript剖析工具、CSS編輯器和新的網(wǎng)路剖析器等。這些工具當你須要時(shí)就在手邊,方便你進(jìn)行開(kāi)發(fā)和調試,實(shí)現與IE9的全方位整合。
7、ie9先進(jìn)的網(wǎng)路開(kāi)發(fā)技術(shù)
IE9提供了一系列先進(jìn)技術(shù),如D2D DirectX圖形構架和圖形、色彩解碼器等,助你實(shí)現高清視頻和多媒體交互。搭配GPU圖形硬件加速,讓畫(huà)面質(zhì)量和流暢性達到質(zhì)的提高,為你搭建一個(gè)更好的平臺,來(lái)為你的用戶(hù)詮釋前所未有的視覺(jué)、聽(tīng)覺(jué)體驗。

截圖7
8、ie9是網(wǎng)站,也是一個(gè)Windows 7程序
利用最新的Windows應用程序插口(API),開(kāi)發(fā)者才能使用JavaScript來(lái)定義鍵盤(pán)右鍵快捷菜單、任務(wù)欄縮略圖、跳轉列表項和觸控等功能,使其與Windows 7操作系統完美整合,帶來(lái)新的瀏覽形式,讓用戶(hù)體驗上升到新的高度。
9、ie9兼容性模式
IE9使開(kāi)發(fā)人員來(lái)選擇瀏覽站點(diǎn)時(shí)所使用的模式,其中包括IE9標準模式、IE8文檔模式、 兼容視圖模式(IE7)或Quirks模式 (IE5)。如果用戶(hù)單擊兼容模式按鍵,網(wǎng)站將以開(kāi)發(fā)者事先指定的模式或兼容視圖模式(IE7)運行,保證向后的兼容性和網(wǎng)站升級時(shí)的靈活性。

截圖8
常見(jiàn)問(wèn)題
IE9支持哪些系統?
可用于全部 Windows Vista 和 Windows 7 版本。
怎么調整IE9 使用兼容模式?
1、打開(kāi)IE瀏覽器,點(diǎn)擊“工具”選項,選擇“兼容性視圖設置”選項。
2、進(jìn)入兼容性視圖設置以后,填入所須要設置兼容模式的網(wǎng)址,點(diǎn)擊添加,最后點(diǎn)擊關(guān)掉即可。
3、重新打開(kāi)經(jīng)過(guò)設置以后的網(wǎng)頁(yè),會(huì )聽(tīng)到地址欄前面有一個(gè)象破碎紙片一樣的圖標,說(shuō)明兼容模式早已設置成功,在工具的下拉菜單也同樣可以看見(jiàn)在兼容模式上面也就對勾,說(shuō)明網(wǎng)頁(yè)的兼容模式早已設置成功。
更新日志
修復部份bug
利用Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)現對網(wǎng)易云音樂(lè )歌詞爬取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 178 次瀏覽 ? 2020-08-11 10:45
找到正確的URL,獲取源碼;
利用bs4解析源碼,獲取歌曲名和歌曲ID;
調用網(wǎng)易云歌曲API,獲取歌詞;
將歌詞寫(xiě)入文件,并存入本地。
本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
在這里相信有許多想要學(xué)習Python的朋友,大家可以+下Python學(xué)習分享褲:叁零肆+零伍零+柒玖玖,即可免費發(fā)放一整套系統的 Python學(xué)習教程!
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。
獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
標簽下,如下圖所示:
接下來(lái)我們借助美麗的湯來(lái)獲取目標信息,直接上代碼,如下圖:
此處要注意獲取ID的時(shí)侯須要對link進(jìn)行切塊處理,得到的數字便是歌曲的ID;另外,歌曲名是通過(guò)get_text方式獲取到的,最后借助zip函數將歌曲名和ID一一對應并進(jìn)行返回。
得到ID以后便可以步入到內頁(yè)獲取歌詞了,但是URL還是不給力,如下圖:
雖然我們可以明白的看見(jiàn)網(wǎng)頁(yè)上的白紙黑字呈現的歌詞信息,但是我們在該URL下卻未能獲取到歌詞信息。小編通過(guò)抓包,找到了歌詞的URL,發(fā)現其是POST懇求還有一大堆看不懂的data,總之這個(gè)URL是不能為我們效力。那該點(diǎn)解呢?
莫慌,小編找到了網(wǎng)易云音樂(lè )的API,只要把歌曲的ID置于A(yíng)PI鏈接上便可以獲取到歌詞了,代碼如下:
在A(yíng)PI中歌詞信息是以json格式加載的,所以須要借助json將其進(jìn)行序列化解析下來(lái),并配合正則表達式進(jìn)行清洗歌詞,如果不用正則表達式進(jìn)行清洗的話(huà),得到原創(chuàng )的數據如下所示(此處以趙雷的歌曲《成都》為例):
很明顯歌詞上面有歌詞呈現的時(shí)間,對于我們來(lái)說(shuō)其屬于雜質(zhì)信息,因此須要借助正則表達式進(jìn)行匹配。誠然,正則表達式并不是惟一的方式,小伙伴們也可以采取切塊的形式或則其他方式進(jìn)行數據清洗,在此就不贅言了。
得到歌詞以后便將其寫(xiě)入到文件中去,并存入到本地文件中,代碼如下:
現在只要我們運行程序,輸入歌手的ID以后,程序將手動(dòng)把該歌手的所唱歌曲的歌詞抓取出來(lái),并存到本地中。如本例中趙雷的ID是6731,輸入數字6731以后,趙雷的歌詞將會(huì )被抓取到,如下圖所示:
之后我們就可以在腳本程序的同一目錄下找到生成的歌詞文本,歌詞就被順利的爬取出來(lái)了。
相信你們對網(wǎng)易云歌詞爬取早已有了一定的認識了,不過(guò)easier said than down,小編建議你們動(dòng)手親自敲一下代碼,在實(shí)踐中你會(huì )學(xué)的更快,學(xué)的更多的。
這篇文章教會(huì )你們怎么采集網(wǎng)易云歌詞,那網(wǎng)易云歌曲怎么采集呢?且聽(tīng)小編下回分解~~ 查看全部
本文的總體思路如下:
找到正確的URL,獲取源碼;
利用bs4解析源碼,獲取歌曲名和歌曲ID;
調用網(wǎng)易云歌曲API,獲取歌詞;
將歌詞寫(xiě)入文件,并存入本地。
本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
在這里相信有許多想要學(xué)習Python的朋友,大家可以+下Python學(xué)習分享褲:叁零肆+零伍零+柒玖玖,即可免費發(fā)放一整套系統的 Python學(xué)習教程!
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。
獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
標簽下,如下圖所示:
接下來(lái)我們借助美麗的湯來(lái)獲取目標信息,直接上代碼,如下圖:
此處要注意獲取ID的時(shí)侯須要對link進(jìn)行切塊處理,得到的數字便是歌曲的ID;另外,歌曲名是通過(guò)get_text方式獲取到的,最后借助zip函數將歌曲名和ID一一對應并進(jìn)行返回。
得到ID以后便可以步入到內頁(yè)獲取歌詞了,但是URL還是不給力,如下圖:
雖然我們可以明白的看見(jiàn)網(wǎng)頁(yè)上的白紙黑字呈現的歌詞信息,但是我們在該URL下卻未能獲取到歌詞信息。小編通過(guò)抓包,找到了歌詞的URL,發(fā)現其是POST懇求還有一大堆看不懂的data,總之這個(gè)URL是不能為我們效力。那該點(diǎn)解呢?
莫慌,小編找到了網(wǎng)易云音樂(lè )的API,只要把歌曲的ID置于A(yíng)PI鏈接上便可以獲取到歌詞了,代碼如下:
在A(yíng)PI中歌詞信息是以json格式加載的,所以須要借助json將其進(jìn)行序列化解析下來(lái),并配合正則表達式進(jìn)行清洗歌詞,如果不用正則表達式進(jìn)行清洗的話(huà),得到原創(chuàng )的數據如下所示(此處以趙雷的歌曲《成都》為例):
很明顯歌詞上面有歌詞呈現的時(shí)間,對于我們來(lái)說(shuō)其屬于雜質(zhì)信息,因此須要借助正則表達式進(jìn)行匹配。誠然,正則表達式并不是惟一的方式,小伙伴們也可以采取切塊的形式或則其他方式進(jìn)行數據清洗,在此就不贅言了。
得到歌詞以后便將其寫(xiě)入到文件中去,并存入到本地文件中,代碼如下:
現在只要我們運行程序,輸入歌手的ID以后,程序將手動(dòng)把該歌手的所唱歌曲的歌詞抓取出來(lái),并存到本地中。如本例中趙雷的ID是6731,輸入數字6731以后,趙雷的歌詞將會(huì )被抓取到,如下圖所示:
之后我們就可以在腳本程序的同一目錄下找到生成的歌詞文本,歌詞就被順利的爬取出來(lái)了。
相信你們對網(wǎng)易云歌詞爬取早已有了一定的認識了,不過(guò)easier said than down,小編建議你們動(dòng)手親自敲一下代碼,在實(shí)踐中你會(huì )學(xué)的更快,學(xué)的更多的。
這篇文章教會(huì )你們怎么采集網(wǎng)易云歌詞,那網(wǎng)易云歌曲怎么采集呢?且聽(tīng)小編下回分解~~
報表開(kāi)發(fā)利器:phantomjs生成PDF ,Echarts圖片
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 270 次瀏覽 ? 2020-08-10 10:26
導航:
一. 關(guān)于phantomjs1.1 什么是phantomjs?
?。?)一個(gè)基于webkit內核的無(wú)頭瀏覽器,即沒(méi)有UI界面,即它就是一個(gè)瀏覽器,只是其內的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作須要程序設計實(shí)現。
?。?)提供javascript API接口,即通過(guò)編撰js程序可以直接與webkit內核交互,在此之上可以結合java語(yǔ)言等,通過(guò)java調用js等相關(guān)操作,從而解決了先前c/c++能夠比較好的基于webkit開(kāi)發(fā)優(yōu)質(zhì)采集器的限制。
?。?)提供windows、linux、mac等不同os的安裝使用包,也就是說(shuō)可以在不同平臺上二次開(kāi)發(fā)采集項目或是手動(dòng)項目測試等工作。
1.2 phantomjs常用API介紹
常用外置幾大對象
常用API
注意事項
使用總結 : 主要是java se+js+phantomjs的應用,
1.3 使用phantomjs 能做哪些?
生成的PDF基本還原了其原先的款式,圖片和文字分開(kāi)了,并非直接截圖;有生成PDF相關(guān)需求的,可以思索生成使用phantomjs 怎樣實(shí)現功能;本人有通過(guò)Html模板,生成Html頁(yè)面,然后將此頁(yè)面上傳至FastDfs服務(wù)器,然后通過(guò)返回的url直接生成此pdf,即完成了html頁(yè)面一致的pdf生成功能;
二. Windows下安裝 phantomjs2.1 概述2.1 下載并安裝phantomjs測試是否安裝成功:三. Linux下 安裝 phantomjs3.1 概述3.2 安裝過(guò)程如下:
進(jìn)入上面后可執行js命令,如果須要退出,則按 Ctrl+C 強制退出
解決英文亂碼(可選,可碰到此問(wèn)題再行解決)正常示例:(Windows上顯示正常如圖:)錯誤示例:(Linux上顯示英文亂碼如圖:)解決辦法:在Linux中執行命令:
yum install bitmap-fonts bitmap-fonts-cjk
執行此命令后,可能只是英文顯示下來(lái)了,數字還是會(huì )顯示空格,如果出現數字顯示空格,則把windows所有字體導出Linux中,見(jiàn)下邊。
導入字體:四. 利用Phantomjs生成Echarts圖片4.1 概述: 在Linux 下:
WIndows與Linux環(huán)境下的區別:①配置好環(huán)境變量,因為phantomjs的啟動(dòng)方法,windows是執行exe文件,linux不是,所以配好環(huán)境變量后java在本機測試與在Linux下無(wú)需做任何更改;②Phantomjs執行生成Echarts圖片時(shí),需要引用到 jquery.1.9.1.min.js ,echarts-convert.js, echarts.min.js 以及生成Echarts的js文件。這些js須要引用到,而當布署在Linux中時(shí),生成的js文件在jar包中,不一定能讀取到,我們可以通過(guò)代碼將js文件復制生成到j(luò )ar包同級目錄,然后通過(guò)路徑加載。路徑加載可以用如下代碼讀取并生成:
~~~java
/* 將模板生成到指定的位置 判定文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty(“user.dir”) + “\echarts-all.js”);
if (!echartsfile.exists()) {
FileUtil.file2file(“js/echarts-all.js”, System.getProperty(“user.dir”) + “\echarts-all.js”);
}
~~~
4.2 筆者實(shí)現思路:第二步:整理思路:生成須要生成的Echarts的js代碼:找到相關(guān)Echarts圖片模板: Echarts官網(wǎng)使用Framework以及其他技術(shù):將模板+數據生成一個(gè)最終js文件;使用Framework為例:將其他的三個(gè)js文件放在其他位置上,博主的做法是將這三個(gè)放在jar包目錄內,但是會(huì )存在phantomjs難以讀取和執行的情況(就是除開(kāi)phantomjs的代碼可以讀取到內容,但phantomjs的執行難以引用讀?。?。所以博主采取的是先讀取下來(lái),再講到j(luò )ar包外邊進(jìn)行引用;這樣通過(guò)路徑,在Linux下也可以讀取了;讀取代碼示例:
/* 將模板生成到指定的位置 判斷文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty("user.dir") + "\\echarts-all.js");
if (!echartsfile.exists()) {
FileUtil.file2file("js/echarts-all.js", System.getProperty("user.dir") + "\\echarts-all.js");
}
File jsfile = new File(outPathAndName);
if (!jsfile.exists()) {
FileUtil.string2File(outPathAndName, echartTemplate.getFileContent()); // 將js文件生成到指定的位置
}
File convertfile = new File(System.getProperty("user.dir") + "\\echarts-convert.js");
String echartsPath = System.getProperty("user.dir") + "\\echarts-convert.js";
if (!convertfile.exists()) {
FileUtil.file2file("js/echarts-convert.js", echartsPath);
}
File jqueryfile = new File(System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
if (!jqueryfile.exists()) {
FileUtil.file2file("js/jquery.1.9.1.min.js", System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
}
重點(diǎn)代碼:System.getProperty(“user.dir”) 為 Windows下或則Linux下的當前路徑 ,具體可百度其用法。
結合早已有的 echarts-convert.js 等文件+ 生成好的帶數據的Echarts.js 文件 和 Demo示例代碼可以生成出Echarts圖片了;我們可以將Echart圖片再上傳至Fastdfs等圖片服務(wù)器,就可以領(lǐng)到網(wǎng)路圖片url了;當然最后一步視業(yè)務(wù)需求而定;五. 利用Phantomjs生成PDF文檔(HTML轉為PDF)5.1 概述5.2 生成原理5.3 擴展思路六.利用Phantomjs+Poi.tl 生成Word文檔6.1 概述6.2 思路 查看全部
報表開(kāi)發(fā)利器:phantomjs生成網(wǎng)頁(yè)PDF ,Echarts報表實(shí)戰
導航:
一. 關(guān)于phantomjs1.1 什么是phantomjs?
?。?)一個(gè)基于webkit內核的無(wú)頭瀏覽器,即沒(méi)有UI界面,即它就是一個(gè)瀏覽器,只是其內的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作須要程序設計實(shí)現。
?。?)提供javascript API接口,即通過(guò)編撰js程序可以直接與webkit內核交互,在此之上可以結合java語(yǔ)言等,通過(guò)java調用js等相關(guān)操作,從而解決了先前c/c++能夠比較好的基于webkit開(kāi)發(fā)優(yōu)質(zhì)采集器的限制。
?。?)提供windows、linux、mac等不同os的安裝使用包,也就是說(shuō)可以在不同平臺上二次開(kāi)發(fā)采集項目或是手動(dòng)項目測試等工作。
1.2 phantomjs常用API介紹
常用外置幾大對象
常用API
注意事項
使用總結 : 主要是java se+js+phantomjs的應用,
1.3 使用phantomjs 能做哪些?
生成的PDF基本還原了其原先的款式,圖片和文字分開(kāi)了,并非直接截圖;有生成PDF相關(guān)需求的,可以思索生成使用phantomjs 怎樣實(shí)現功能;本人有通過(guò)Html模板,生成Html頁(yè)面,然后將此頁(yè)面上傳至FastDfs服務(wù)器,然后通過(guò)返回的url直接生成此pdf,即完成了html頁(yè)面一致的pdf生成功能;
二. Windows下安裝 phantomjs2.1 概述2.1 下載并安裝phantomjs測試是否安裝成功:三. Linux下 安裝 phantomjs3.1 概述3.2 安裝過(guò)程如下:
進(jìn)入上面后可執行js命令,如果須要退出,則按 Ctrl+C 強制退出
解決英文亂碼(可選,可碰到此問(wèn)題再行解決)正常示例:(Windows上顯示正常如圖:)錯誤示例:(Linux上顯示英文亂碼如圖:)解決辦法:在Linux中執行命令:
yum install bitmap-fonts bitmap-fonts-cjk
執行此命令后,可能只是英文顯示下來(lái)了,數字還是會(huì )顯示空格,如果出現數字顯示空格,則把windows所有字體導出Linux中,見(jiàn)下邊。
導入字體:四. 利用Phantomjs生成Echarts圖片4.1 概述: 在Linux 下:
WIndows與Linux環(huán)境下的區別:①配置好環(huán)境變量,因為phantomjs的啟動(dòng)方法,windows是執行exe文件,linux不是,所以配好環(huán)境變量后java在本機測試與在Linux下無(wú)需做任何更改;②Phantomjs執行生成Echarts圖片時(shí),需要引用到 jquery.1.9.1.min.js ,echarts-convert.js, echarts.min.js 以及生成Echarts的js文件。這些js須要引用到,而當布署在Linux中時(shí),生成的js文件在jar包中,不一定能讀取到,我們可以通過(guò)代碼將js文件復制生成到j(luò )ar包同級目錄,然后通過(guò)路徑加載。路徑加載可以用如下代碼讀取并生成:
~~~java
/* 將模板生成到指定的位置 判定文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty(“user.dir”) + “\echarts-all.js”);
if (!echartsfile.exists()) {
FileUtil.file2file(“js/echarts-all.js”, System.getProperty(“user.dir”) + “\echarts-all.js”);
}
~~~
4.2 筆者實(shí)現思路:第二步:整理思路:生成須要生成的Echarts的js代碼:找到相關(guān)Echarts圖片模板: Echarts官網(wǎng)使用Framework以及其他技術(shù):將模板+數據生成一個(gè)最終js文件;使用Framework為例:將其他的三個(gè)js文件放在其他位置上,博主的做法是將這三個(gè)放在jar包目錄內,但是會(huì )存在phantomjs難以讀取和執行的情況(就是除開(kāi)phantomjs的代碼可以讀取到內容,但phantomjs的執行難以引用讀?。?。所以博主采取的是先讀取下來(lái),再講到j(luò )ar包外邊進(jìn)行引用;這樣通過(guò)路徑,在Linux下也可以讀取了;讀取代碼示例:
/* 將模板生成到指定的位置 判斷文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty("user.dir") + "\\echarts-all.js");
if (!echartsfile.exists()) {
FileUtil.file2file("js/echarts-all.js", System.getProperty("user.dir") + "\\echarts-all.js");
}
File jsfile = new File(outPathAndName);
if (!jsfile.exists()) {
FileUtil.string2File(outPathAndName, echartTemplate.getFileContent()); // 將js文件生成到指定的位置
}
File convertfile = new File(System.getProperty("user.dir") + "\\echarts-convert.js");
String echartsPath = System.getProperty("user.dir") + "\\echarts-convert.js";
if (!convertfile.exists()) {
FileUtil.file2file("js/echarts-convert.js", echartsPath);
}
File jqueryfile = new File(System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
if (!jqueryfile.exists()) {
FileUtil.file2file("js/jquery.1.9.1.min.js", System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
}
重點(diǎn)代碼:System.getProperty(“user.dir”) 為 Windows下或則Linux下的當前路徑 ,具體可百度其用法。
結合早已有的 echarts-convert.js 等文件+ 生成好的帶數據的Echarts.js 文件 和 Demo示例代碼可以生成出Echarts圖片了;我們可以將Echart圖片再上傳至Fastdfs等圖片服務(wù)器,就可以領(lǐng)到網(wǎng)路圖片url了;當然最后一步視業(yè)務(wù)需求而定;五. 利用Phantomjs生成PDF文檔(HTML轉為PDF)5.1 概述5.2 生成原理5.3 擴展思路六.利用Phantomjs+Poi.tl 生成Word文檔6.1 概述6.2 思路
Python丨scrapy爬取某急聘網(wǎng)手機APP發(fā)布信息
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 175 次瀏覽 ? 2020-08-10 08:51
過(guò)段時(shí)間要開(kāi)始找新工作了,爬取一些崗位信息來(lái)剖析一下吧。目前主流的急聘網(wǎng)站包括前程無(wú)憂(yōu)、智聯(lián)、BOSS直聘、拉勾等等。有段時(shí)間時(shí)間沒(méi)爬取手機APP了,這次寫(xiě)一個(gè)爬蟲(chóng)爬取前程無(wú)憂(yōu)手機APP崗位信息,其他急聘網(wǎng)站后續再更新補上……
所用工具(技術(shù)):
IDE:pycharm
Database:MySQL
抓包工具:Fiddler
爬蟲(chóng)框架:scrapy==1.5.0
信息抓?。簊crapy外置的Selector
Python學(xué)習資料或則須要代碼、視頻加Python學(xué)習群:960410445
2 APP抓包剖析
我們先來(lái)體會(huì )一下前程無(wú)憂(yōu)的APP,當我們在首頁(yè)輸入搜索關(guān)鍵詞點(diǎn)擊搜索然后APP都會(huì )跳轉到新的頁(yè)面,這個(gè)頁(yè)面我們暫且稱(chēng)之為一級頁(yè)面。一級頁(yè)面展示著(zhù)我們所想找查看的所有崗位列表。
當我們點(diǎn)擊其中一條崗位信息后,APP又會(huì )跳轉到一個(gè)新的頁(yè)面,我把這個(gè)頁(yè)面稱(chēng)之為二級頁(yè)面。二級頁(yè)面有我們須要的所有崗位信息,也是我們的主要采集目前頁(yè)面。
分析完頁(yè)面然后,接下來(lái)就可以對前程無(wú)憂(yōu)手機APP的懇求(request)和回復(response)進(jìn)行剖析了。本文所使用的抓包工具為Fiddler。
本文的目的是抓取前程無(wú)憂(yōu)APP上搜索某個(gè)關(guān)鍵詞時(shí)返回的所有急聘信息,本文以“Python”為例進(jìn)行說(shuō)明。APP上操作如下圖所示,輸入“Python”關(guān)鍵詞后,點(diǎn)擊搜索,隨后Fiddler抓取到4個(gè)數據包,如下所示:
事實(shí)上,當聽(tīng)到第2和第4個(gè)數據包的圖標時(shí),我們就應當會(huì )心一笑。這兩個(gè)圖標分別代表傳輸的是json和xml格式的數據,而好多web插口就是以這兩種格式來(lái)傳輸數據的,手機APP也不列外。選中第2個(gè)數據包,然后在右邊主窗口中查看,發(fā)現第二個(gè)數據包并沒(méi)有我們想要的數據。在瞧瞧第4個(gè)數據包,選中后在右邊窗體,可以看見(jiàn)以下內容:
右下角的內容不就是在手機上看見(jiàn)的急聘信息嗎,還是以XML的格式來(lái)傳輸的。我們將這個(gè)數據包的鏈接復制出來(lái):
keyword=Python&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
我們爬取的時(shí)侯肯定不會(huì )只爬取一個(gè)頁(yè)面的信息,我們在A(yíng)PP上把頁(yè)面往下滑,看看Fiddler會(huì )抓取到哪些數據包??从覉D:
手機屏幕往下滑動(dòng)后,Fiddler又抓取到兩個(gè)數據包,而且第二個(gè)數據包選中看再度發(fā)覺(jué)就是APP上新刷新的急聘信息,再把這個(gè)數據包的url鏈接復制出來(lái):
pageno=2&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
接下來(lái),我們比對一下前后兩個(gè)鏈接,分析其中的優(yōu)缺??梢钥闯?,除了“pageno”這個(gè)屬性外,其他都一樣。沒(méi)錯,就是在里面標紅的地方。第一個(gè)數據包鏈接中pageno值為1,第二個(gè)pageno值為2,這下翻頁(yè)的規律就一目了然了。
既然我們早已找到了APP翻頁(yè)的懇求鏈接規律,我們就可以在爬蟲(chóng)中通過(guò)循環(huán)形參給pageno,實(shí)現模擬翻頁(yè)的功能。
我們再?lài)L試一下改變搜索的關(guān)鍵詞瞧瞧鏈接有哪些變化,以“java”為關(guān)鍵詞,抓取到的數據包為:
keyword=java&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比后發(fā)覺(jué),鏈接中也只有keyword的值不一樣,而且值就是我們在自己輸入的關(guān)鍵詞。所以在爬蟲(chóng)中,我們完全可以通過(guò)字符串拼接來(lái)實(shí)現輸入關(guān)鍵詞模擬,從而采集不同類(lèi)型的急聘信息。同理,你可以對求職地點(diǎn)等信息的規律進(jìn)行找尋,本文不在表述。
解決翻頁(yè)功能然后,我們再去探究一下數據包中XML上面的內容。我們把里面的第一個(gè)鏈接復制到瀏覽器上打開(kāi),打開(kāi)后畫(huà)面如下:
這樣看著(zhù)就舒服多了。通過(guò)仔細觀(guān)察我們會(huì )發(fā)覺(jué),APP上每一條急聘信息都對應著(zhù)一個(gè)標簽,每一個(gè)上面都有一個(gè)標簽,里面有一個(gè)id標示著(zhù)一個(gè)崗位。例如前面第一條崗位是109384390,第二條崗位是109381483,記住這個(gè)id,后面會(huì )用到。
事實(shí)上,接下來(lái),我們點(diǎn)擊第一條急聘信息,進(jìn)入二級頁(yè)面。這時(shí)候,Fiddler會(huì )采集到APP剛發(fā)送的數據包,點(diǎn)擊其中的xml數據包,發(fā)現就是APP上剛刷新的頁(yè)面信息。我們將數據包的url鏈接復制下來(lái):
jobid=109384390&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
如法炮制點(diǎn)開(kāi)一級頁(yè)面中列表的第二條急聘,然后從Fiddler中復制出對應數據包的url鏈接:
jobid=109381483&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比前面兩個(gè)鏈接,發(fā)現規律沒(méi)?沒(méi)錯,就是jobid不同,其他都一樣。這個(gè)jobid就是我們在一級頁(yè)面的xml中發(fā)覺(jué)的jobid。由此,我們就可以在一級頁(yè)面中抓取出jobid來(lái)構造出二級頁(yè)面的url鏈接,然后采集出我們所須要的所有信息。整個(gè)爬蟲(chóng)邏輯就清晰了:
構造一級頁(yè)面初始url->采集jobid->構造二級頁(yè)面url->抓取崗位信息->通過(guò)循環(huán)模擬翻頁(yè)獲取下一頁(yè)面的url。
好了,分析工作完成了,開(kāi)始動(dòng)手寫(xiě)爬蟲(chóng)了。
3 編寫(xiě)爬蟲(chóng)
本文編撰前程無(wú)憂(yōu)手機APP網(wǎng)路爬蟲(chóng)用的是Scrapy框架,下載好scrapy第三方包后,通過(guò)命令行創(chuàng )建爬蟲(chóng)項目:
scrapy startproject job_spider .
job_spider就是我們本次爬蟲(chóng)項目的項目名稱(chēng),在項目名前面有一個(gè)“.”,這個(gè)點(diǎn)可有可無(wú),區別是在當前文件之間創(chuàng )建項目還是創(chuàng )建一個(gè)與項目名同名的文件之后在文件內創(chuàng )建項目。
創(chuàng )建好項目后,繼續創(chuàng )建一個(gè)爬蟲(chóng),專(zhuān)用于爬取前程無(wú)憂(yōu)發(fā)布的急聘信息。創(chuàng )建爬蟲(chóng)命名如下:
scrapy genspider qcwySpider
注意:如果你在創(chuàng )建爬蟲(chóng)項目的時(shí)侯沒(méi)有在項目名前面加“.”,請先步入項目文件夾以后再運行命令創(chuàng )建爬蟲(chóng)。
通過(guò)pycharm打開(kāi)剛創(chuàng )建好的爬蟲(chóng)項目,左側目錄樹(shù)結構如下:
在開(kāi)始一切爬蟲(chóng)工作之前,先打開(kāi)settings.py文件,然后取消“ROBOTSTXT_OBEY = False”這一行的注釋?zhuān)⑵渲蹈臑镕alse。
# Obey robots.txt rulesROBOTSTXT_OBEY = False
完成上述更改后,打開(kāi)spiders包下的qcwySpider.py,初始代碼如下:
這是scrapy為我們搭好的框架,我們只須要在這個(gè)基礎起來(lái)建立我們的爬蟲(chóng)即可。
首先我們須要在類(lèi)中添加一些屬性,例如搜索關(guān)鍵詞keyword、起始頁(yè)、想要爬取得最大頁(yè)數,同時(shí)也須要設置headers進(jìn)行簡(jiǎn)單的反爬。另外,starturl也須要重新設置為第一頁(yè)的url。更改后代碼如下:
然后開(kāi)始編撰parse方式爬取一級頁(yè)面,在一級頁(yè)面中,我們主要邏輯是通過(guò)循環(huán)實(shí)現APP中屏幕下降更新,我們用前面代碼中的current_page來(lái)標示當前頁(yè)頁(yè)腳,每次循環(huán)后,current_page加1,然后構造新的url,通過(guò)反彈parse方式爬取下一頁(yè)。另外,我們還須要在parse方式中在一級頁(yè)面中采集出jobid,并構造出二級頁(yè)面的,回調實(shí)現二級頁(yè)面信息采集的parse_job方式。parse方式代碼如下:
為了便捷進(jìn)行調試,我們在項目的jobSpider目錄下創(chuàng )建一個(gè)main.py文件,用于啟動(dòng)爬蟲(chóng),每次啟動(dòng)爬蟲(chóng)時(shí),運行該文件即可。內容如下:
二級頁(yè)面信息采集功能在parse_job方式中實(shí)現,因為所有我們須要抓取的信息都在xml中,我們直接用scrapy自帶的selector提取下來(lái)就可以了,不過(guò)在提取之前,我們須要先定義好Item拿來(lái)儲存我們采集好的數據。打開(kāi)items.py文件,編寫(xiě)一個(gè)Item類(lèi),輸入以下代碼:
上面每一個(gè)item都與一個(gè)xml標簽對應,用于儲存一條信息。在qcwyJobsItem類(lèi)的最后,定義了一個(gè)do_insert方式,該方式用于生產(chǎn)將item中所有信息儲存數據庫的insert句子,之所以在items鐵塊中生成這個(gè)insert句子,是因為日后若果有了多個(gè)爬蟲(chóng),有多個(gè)item類(lèi)以后,在pipelines模塊中,可以針對不同的item插入數據庫,使本項目具有更強的可擴展性。你也可以將所有與插入數據庫有關(guān)的代碼都寫(xiě)在pipelines。
然后編撰parse_job方式:
完成上述代碼后,信息采集部分就完成了。接下來(lái)繼續寫(xiě)信息儲存功能,這一功能在pipelines.py中完成。
編寫(xiě)完pipelines.py后,打開(kāi)settings.py文件,將剛寫(xiě)好的MysqlTwistedPipline類(lèi)配置到項目設置文件中:
順便也把數據庫配置好:
數據庫配置你也可以之間嵌入到MysqlTwistedPipline類(lèi)中,不過(guò)我習慣于把這種專(zhuān)屬的數據庫信息寫(xiě)在配置文件中。
最后,只差一步,建數據庫、建數據表。部分表結構如下圖所示:
完成上述所有內容以后,就可以運行爬蟲(chóng)開(kāi)始采集數據了。采集的數據如下圖所示:
4 總結
整個(gè)過(guò)程出來(lái),感覺(jué)前程無(wú)憂(yōu)網(wǎng)APP爬取要比網(wǎng)頁(yè)爬取容易一些(似乎好多網(wǎng)站都這樣)?;仡櫿麄€(gè)流程,其實(shí)代碼中還有眾多細節尚可改進(jìn)建立,例如還可以在構造鏈接時(shí)加上求職地點(diǎn)等。本博文重在對整個(gè)爬蟲(chóng)過(guò)程的邏輯剖析和介紹APP的基本爬取方式,博文中省略了部份代碼,若須要完整代碼,請在我的github中獲取,后續將繼續更新其他急聘網(wǎng)站的爬蟲(chóng)。返回搜狐,查看更多 查看全部
1 引言
過(guò)段時(shí)間要開(kāi)始找新工作了,爬取一些崗位信息來(lái)剖析一下吧。目前主流的急聘網(wǎng)站包括前程無(wú)憂(yōu)、智聯(lián)、BOSS直聘、拉勾等等。有段時(shí)間時(shí)間沒(méi)爬取手機APP了,這次寫(xiě)一個(gè)爬蟲(chóng)爬取前程無(wú)憂(yōu)手機APP崗位信息,其他急聘網(wǎng)站后續再更新補上……
所用工具(技術(shù)):
IDE:pycharm
Database:MySQL
抓包工具:Fiddler
爬蟲(chóng)框架:scrapy==1.5.0
信息抓?。簊crapy外置的Selector
Python學(xué)習資料或則須要代碼、視頻加Python學(xué)習群:960410445
2 APP抓包剖析
我們先來(lái)體會(huì )一下前程無(wú)憂(yōu)的APP,當我們在首頁(yè)輸入搜索關(guān)鍵詞點(diǎn)擊搜索然后APP都會(huì )跳轉到新的頁(yè)面,這個(gè)頁(yè)面我們暫且稱(chēng)之為一級頁(yè)面。一級頁(yè)面展示著(zhù)我們所想找查看的所有崗位列表。

當我們點(diǎn)擊其中一條崗位信息后,APP又會(huì )跳轉到一個(gè)新的頁(yè)面,我把這個(gè)頁(yè)面稱(chēng)之為二級頁(yè)面。二級頁(yè)面有我們須要的所有崗位信息,也是我們的主要采集目前頁(yè)面。

分析完頁(yè)面然后,接下來(lái)就可以對前程無(wú)憂(yōu)手機APP的懇求(request)和回復(response)進(jìn)行剖析了。本文所使用的抓包工具為Fiddler。
本文的目的是抓取前程無(wú)憂(yōu)APP上搜索某個(gè)關(guān)鍵詞時(shí)返回的所有急聘信息,本文以“Python”為例進(jìn)行說(shuō)明。APP上操作如下圖所示,輸入“Python”關(guān)鍵詞后,點(diǎn)擊搜索,隨后Fiddler抓取到4個(gè)數據包,如下所示:

事實(shí)上,當聽(tīng)到第2和第4個(gè)數據包的圖標時(shí),我們就應當會(huì )心一笑。這兩個(gè)圖標分別代表傳輸的是json和xml格式的數據,而好多web插口就是以這兩種格式來(lái)傳輸數據的,手機APP也不列外。選中第2個(gè)數據包,然后在右邊主窗口中查看,發(fā)現第二個(gè)數據包并沒(méi)有我們想要的數據。在瞧瞧第4個(gè)數據包,選中后在右邊窗體,可以看見(jiàn)以下內容:

右下角的內容不就是在手機上看見(jiàn)的急聘信息嗎,還是以XML的格式來(lái)傳輸的。我們將這個(gè)數據包的鏈接復制出來(lái):
keyword=Python&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
我們爬取的時(shí)侯肯定不會(huì )只爬取一個(gè)頁(yè)面的信息,我們在A(yíng)PP上把頁(yè)面往下滑,看看Fiddler會(huì )抓取到哪些數據包??从覉D:

手機屏幕往下滑動(dòng)后,Fiddler又抓取到兩個(gè)數據包,而且第二個(gè)數據包選中看再度發(fā)覺(jué)就是APP上新刷新的急聘信息,再把這個(gè)數據包的url鏈接復制出來(lái):
pageno=2&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
接下來(lái),我們比對一下前后兩個(gè)鏈接,分析其中的優(yōu)缺??梢钥闯?,除了“pageno”這個(gè)屬性外,其他都一樣。沒(méi)錯,就是在里面標紅的地方。第一個(gè)數據包鏈接中pageno值為1,第二個(gè)pageno值為2,這下翻頁(yè)的規律就一目了然了。
既然我們早已找到了APP翻頁(yè)的懇求鏈接規律,我們就可以在爬蟲(chóng)中通過(guò)循環(huán)形參給pageno,實(shí)現模擬翻頁(yè)的功能。
我們再?lài)L試一下改變搜索的關(guān)鍵詞瞧瞧鏈接有哪些變化,以“java”為關(guān)鍵詞,抓取到的數據包為:
keyword=java&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比后發(fā)覺(jué),鏈接中也只有keyword的值不一樣,而且值就是我們在自己輸入的關(guān)鍵詞。所以在爬蟲(chóng)中,我們完全可以通過(guò)字符串拼接來(lái)實(shí)現輸入關(guān)鍵詞模擬,從而采集不同類(lèi)型的急聘信息。同理,你可以對求職地點(diǎn)等信息的規律進(jìn)行找尋,本文不在表述。
解決翻頁(yè)功能然后,我們再去探究一下數據包中XML上面的內容。我們把里面的第一個(gè)鏈接復制到瀏覽器上打開(kāi),打開(kāi)后畫(huà)面如下:

這樣看著(zhù)就舒服多了。通過(guò)仔細觀(guān)察我們會(huì )發(fā)覺(jué),APP上每一條急聘信息都對應著(zhù)一個(gè)標簽,每一個(gè)上面都有一個(gè)標簽,里面有一個(gè)id標示著(zhù)一個(gè)崗位。例如前面第一條崗位是109384390,第二條崗位是109381483,記住這個(gè)id,后面會(huì )用到。
事實(shí)上,接下來(lái),我們點(diǎn)擊第一條急聘信息,進(jìn)入二級頁(yè)面。這時(shí)候,Fiddler會(huì )采集到APP剛發(fā)送的數據包,點(diǎn)擊其中的xml數據包,發(fā)現就是APP上剛刷新的頁(yè)面信息。我們將數據包的url鏈接復制下來(lái):
jobid=109384390&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
如法炮制點(diǎn)開(kāi)一級頁(yè)面中列表的第二條急聘,然后從Fiddler中復制出對應數據包的url鏈接:
jobid=109381483&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比前面兩個(gè)鏈接,發(fā)現規律沒(méi)?沒(méi)錯,就是jobid不同,其他都一樣。這個(gè)jobid就是我們在一級頁(yè)面的xml中發(fā)覺(jué)的jobid。由此,我們就可以在一級頁(yè)面中抓取出jobid來(lái)構造出二級頁(yè)面的url鏈接,然后采集出我們所須要的所有信息。整個(gè)爬蟲(chóng)邏輯就清晰了:
構造一級頁(yè)面初始url->采集jobid->構造二級頁(yè)面url->抓取崗位信息->通過(guò)循環(huán)模擬翻頁(yè)獲取下一頁(yè)面的url。
好了,分析工作完成了,開(kāi)始動(dòng)手寫(xiě)爬蟲(chóng)了。
3 編寫(xiě)爬蟲(chóng)
本文編撰前程無(wú)憂(yōu)手機APP網(wǎng)路爬蟲(chóng)用的是Scrapy框架,下載好scrapy第三方包后,通過(guò)命令行創(chuàng )建爬蟲(chóng)項目:
scrapy startproject job_spider .
job_spider就是我們本次爬蟲(chóng)項目的項目名稱(chēng),在項目名前面有一個(gè)“.”,這個(gè)點(diǎn)可有可無(wú),區別是在當前文件之間創(chuàng )建項目還是創(chuàng )建一個(gè)與項目名同名的文件之后在文件內創(chuàng )建項目。
創(chuàng )建好項目后,繼續創(chuàng )建一個(gè)爬蟲(chóng),專(zhuān)用于爬取前程無(wú)憂(yōu)發(fā)布的急聘信息。創(chuàng )建爬蟲(chóng)命名如下:
scrapy genspider qcwySpider
注意:如果你在創(chuàng )建爬蟲(chóng)項目的時(shí)侯沒(méi)有在項目名前面加“.”,請先步入項目文件夾以后再運行命令創(chuàng )建爬蟲(chóng)。
通過(guò)pycharm打開(kāi)剛創(chuàng )建好的爬蟲(chóng)項目,左側目錄樹(shù)結構如下:

在開(kāi)始一切爬蟲(chóng)工作之前,先打開(kāi)settings.py文件,然后取消“ROBOTSTXT_OBEY = False”這一行的注釋?zhuān)⑵渲蹈臑镕alse。
# Obey robots.txt rulesROBOTSTXT_OBEY = False
完成上述更改后,打開(kāi)spiders包下的qcwySpider.py,初始代碼如下:

這是scrapy為我們搭好的框架,我們只須要在這個(gè)基礎起來(lái)建立我們的爬蟲(chóng)即可。
首先我們須要在類(lèi)中添加一些屬性,例如搜索關(guān)鍵詞keyword、起始頁(yè)、想要爬取得最大頁(yè)數,同時(shí)也須要設置headers進(jìn)行簡(jiǎn)單的反爬。另外,starturl也須要重新設置為第一頁(yè)的url。更改后代碼如下:

然后開(kāi)始編撰parse方式爬取一級頁(yè)面,在一級頁(yè)面中,我們主要邏輯是通過(guò)循環(huán)實(shí)現APP中屏幕下降更新,我們用前面代碼中的current_page來(lái)標示當前頁(yè)頁(yè)腳,每次循環(huán)后,current_page加1,然后構造新的url,通過(guò)反彈parse方式爬取下一頁(yè)。另外,我們還須要在parse方式中在一級頁(yè)面中采集出jobid,并構造出二級頁(yè)面的,回調實(shí)現二級頁(yè)面信息采集的parse_job方式。parse方式代碼如下:

為了便捷進(jìn)行調試,我們在項目的jobSpider目錄下創(chuàng )建一個(gè)main.py文件,用于啟動(dòng)爬蟲(chóng),每次啟動(dòng)爬蟲(chóng)時(shí),運行該文件即可。內容如下:

二級頁(yè)面信息采集功能在parse_job方式中實(shí)現,因為所有我們須要抓取的信息都在xml中,我們直接用scrapy自帶的selector提取下來(lái)就可以了,不過(guò)在提取之前,我們須要先定義好Item拿來(lái)儲存我們采集好的數據。打開(kāi)items.py文件,編寫(xiě)一個(gè)Item類(lèi),輸入以下代碼:

上面每一個(gè)item都與一個(gè)xml標簽對應,用于儲存一條信息。在qcwyJobsItem類(lèi)的最后,定義了一個(gè)do_insert方式,該方式用于生產(chǎn)將item中所有信息儲存數據庫的insert句子,之所以在items鐵塊中生成這個(gè)insert句子,是因為日后若果有了多個(gè)爬蟲(chóng),有多個(gè)item類(lèi)以后,在pipelines模塊中,可以針對不同的item插入數據庫,使本項目具有更強的可擴展性。你也可以將所有與插入數據庫有關(guān)的代碼都寫(xiě)在pipelines。
然后編撰parse_job方式:

完成上述代碼后,信息采集部分就完成了。接下來(lái)繼續寫(xiě)信息儲存功能,這一功能在pipelines.py中完成。

編寫(xiě)完pipelines.py后,打開(kāi)settings.py文件,將剛寫(xiě)好的MysqlTwistedPipline類(lèi)配置到項目設置文件中:

順便也把數據庫配置好:

數據庫配置你也可以之間嵌入到MysqlTwistedPipline類(lèi)中,不過(guò)我習慣于把這種專(zhuān)屬的數據庫信息寫(xiě)在配置文件中。
最后,只差一步,建數據庫、建數據表。部分表結構如下圖所示:

完成上述所有內容以后,就可以運行爬蟲(chóng)開(kāi)始采集數據了。采集的數據如下圖所示:

4 總結
整個(gè)過(guò)程出來(lái),感覺(jué)前程無(wú)憂(yōu)網(wǎng)APP爬取要比網(wǎng)頁(yè)爬取容易一些(似乎好多網(wǎng)站都這樣)?;仡櫿麄€(gè)流程,其實(shí)代碼中還有眾多細節尚可改進(jìn)建立,例如還可以在構造鏈接時(shí)加上求職地點(diǎn)等。本博文重在對整個(gè)爬蟲(chóng)過(guò)程的邏輯剖析和介紹APP的基本爬取方式,博文中省略了部份代碼,若須要完整代碼,請在我的github中獲取,后續將繼續更新其他急聘網(wǎng)站的爬蟲(chóng)。返回搜狐,查看更多
Python爬蟲(chóng) 百度地圖搜索數據采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 358 次瀏覽 ? 2020-08-10 06:51
趁空閑時(shí)間用Python來(lái)簡(jiǎn)單剖析制做一個(gè)簡(jiǎn)單的爬蟲(chóng)小腳本。
三個(gè)參數主要考慮的,一個(gè)是地理位置,一個(gè)是關(guān)鍵詞,一個(gè)是頁(yè)數。在抓包的過(guò)程中對“頁(yè)數”這個(gè)參數苦惱了好久,一直沒(méi)看明白,后面仔細對比才找到門(mén)道。
先談?wù)劦乩砦恢茫?br />
需要按指定地址搜索的時(shí)侯會(huì )須要一個(gè)叫City_Code 的參數,輸入搜索的時(shí)侯可以爬取到,輸入后有上述的幾種情況,不存在會(huì )強制要求你重新輸入,如果輸入“廣東”就會(huì )定位在廣州省內,不過(guò)實(shí)際搜索關(guān)鍵詞的時(shí)侯頁(yè)面并不會(huì )顯示海南所有的結果,而是須要你做二次選擇。
在百度的開(kāi)發(fā)平臺有城市代碼可以直接下載,不過(guò)并不完整,有須要的可以自行下載查閱
parameter = {
"newmap": "1",
"reqflag": "pcmap",
"biz": "1",
"from": "webmap",
"da_par": "direct",
"pcevaname": "pc4.1",
"qt": "con",
"c": City_Code, # 城市代碼
"wd": key_word, # 搜索關(guān)鍵詞
"wd2": "",
"pn": page, # 頁(yè)數
"nn": page * 10,
"db": "0",
"sug": "0",
"addr": "0",
"da_src": "pcmappg.poi.page",
"on_gel": "1",
"src": "7",
"gr": "3",
"l": "12",
"tn": "B_NORMAL_MAP",
# "u_loc": "12621219.536556,2630747.285024",
"ie": "utf-8",
# "b": "(11845157.18,3047692.2;11922085.18,3073932.2)", #這個(gè)應該是地理位置坐標,可以忽略
"t": "1468896652886"
}
頁(yè)數的參數有兩個(gè),一個(gè)是"pn",另外一個(gè)是"nn",沒(méi)搞明白三者之間的關(guān)系;
pn=0,nn=0 第一頁(yè)
pn=1,nn=10 第二頁(yè)
pn=2,nn=20 第三頁(yè)
pn=3,nn=30 第四頁(yè)
"nn"參數在調試過(guò)程中試過(guò)固定的話(huà)并且返回的數據是一樣的。
<p> url = 'http://map.baidu.com/'
htm = requests.get(url, params=parameter)
htm = htm.text.encode('latin-1').decode('unicode_escape') # 轉碼
pattern = r'(? 查看全部
之前在網(wǎng)上聽(tīng)到有留傳VBA編撰的版本,不過(guò)參數固定,通用性并不強.
趁空閑時(shí)間用Python來(lái)簡(jiǎn)單剖析制做一個(gè)簡(jiǎn)單的爬蟲(chóng)小腳本。
三個(gè)參數主要考慮的,一個(gè)是地理位置,一個(gè)是關(guān)鍵詞,一個(gè)是頁(yè)數。在抓包的過(guò)程中對“頁(yè)數”這個(gè)參數苦惱了好久,一直沒(méi)看明白,后面仔細對比才找到門(mén)道。
先談?wù)劦乩砦恢茫?br />
需要按指定地址搜索的時(shí)侯會(huì )須要一個(gè)叫City_Code 的參數,輸入搜索的時(shí)侯可以爬取到,輸入后有上述的幾種情況,不存在會(huì )強制要求你重新輸入,如果輸入“廣東”就會(huì )定位在廣州省內,不過(guò)實(shí)際搜索關(guān)鍵詞的時(shí)侯頁(yè)面并不會(huì )顯示海南所有的結果,而是須要你做二次選擇。
在百度的開(kāi)發(fā)平臺有城市代碼可以直接下載,不過(guò)并不完整,有須要的可以自行下載查閱
parameter = {
"newmap": "1",
"reqflag": "pcmap",
"biz": "1",
"from": "webmap",
"da_par": "direct",
"pcevaname": "pc4.1",
"qt": "con",
"c": City_Code, # 城市代碼
"wd": key_word, # 搜索關(guān)鍵詞
"wd2": "",
"pn": page, # 頁(yè)數
"nn": page * 10,
"db": "0",
"sug": "0",
"addr": "0",
"da_src": "pcmappg.poi.page",
"on_gel": "1",
"src": "7",
"gr": "3",
"l": "12",
"tn": "B_NORMAL_MAP",
# "u_loc": "12621219.536556,2630747.285024",
"ie": "utf-8",
# "b": "(11845157.18,3047692.2;11922085.18,3073932.2)", #這個(gè)應該是地理位置坐標,可以忽略
"t": "1468896652886"
}
頁(yè)數的參數有兩個(gè),一個(gè)是"pn",另外一個(gè)是"nn",沒(méi)搞明白三者之間的關(guān)系;
pn=0,nn=0 第一頁(yè)
pn=1,nn=10 第二頁(yè)
pn=2,nn=20 第三頁(yè)
pn=3,nn=30 第四頁(yè)
"nn"參數在調試過(guò)程中試過(guò)固定的話(huà)并且返回的數據是一樣的。
<p> url = 'http://map.baidu.com/'
htm = requests.get(url, params=parameter)
htm = htm.text.encode('latin-1').decode('unicode_escape') # 轉碼
pattern = r'(?
新榜陌陌文章抓取客戶(hù)端(APSpider)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 160 次瀏覽 ? 2020-08-10 06:25
這是曾經(jīng)給新媒體營(yíng)運朋友寫(xiě)的爬蟲(chóng)軟件,用了一段時(shí)間就沒(méi)用了(唉、氣死我了)。
目前只抓取了新榜的日榜(周榜、月榜類(lèi)似,換下地址即可)下,各行業(yè)的前50個(gè)公眾號下的7天熱門(mén)文章和最新發(fā)布文章
如下所示:
技術(shù)構架:nw.jsjqueryelement-ui
為什么選用nw.js呢?嗯,先入為主吧,electron也很不錯(改下入口即可使用),為什么不用大名鼎鼎的python呢?爬蟲(chóng)框架而且一堆堆,還是個(gè)人習慣使然,用慣了js,操作網(wǎng)頁(yè)簡(jiǎn)直得心應手,天生絕配!在此并不證實(shí)python,個(gè)人也比較喜歡(最近在研究深度學(xué)習架構),只是認為爬這種網(wǎng)頁(yè),還用不著(zhù)它。
有一個(gè)關(guān)鍵點(diǎn),在網(wǎng)頁(yè)中,想操作iframe中的網(wǎng)頁(yè),是不容許跨域的,而nw.js容許這樣操作,真是好?。。?!
安裝步驟下載nw.js ,根據自己系統下載相應版本即可,官網(wǎng): ,若自己須要二次開(kāi)發(fā),請下載SDK版本,方可開(kāi)啟debug,使用方式詳見(jiàn)官網(wǎng),不再探討克隆APSpider,復制到nw.js目錄,啟動(dòng)cmd,打開(kāi)到當前目錄,執行 npm install 安裝依賴(lài)啟動(dòng)nw.exe 就可以使用啦使用說(shuō)明考慮完整性,本客戶(hù)端在讀取到公眾號列表及文章列表時(shí),直接儲存在article下的目錄文件中,若須要將數據儲存至數據庫,請更改assest\utils\common.js中的Ap.request.ajax方式,將log函數注釋?zhuān)瑢⑾逻叡蛔⑨尩拇a恢復即可,然后在app\config.js中配置pushStateAPI(即前端接收數據API)為自己的數據插口即可因為新榜在公眾號詳盡頁(yè)面設置了登陸權限(如:),
只有登陸后可訪(fǎng)問(wèn),并且獲取公眾號文章的插口: ,
也是帶了安全校準數組,所以登陸是必須要走的過(guò)程,所以點(diǎn)擊登陸后,程序打開(kāi)登陸頁(yè)面,并獲取二維碼,如圖:
用自己的陌陌掃一掃,授權登陸即可,程序手動(dòng)步入公眾號列表:
選擇行業(yè),點(diǎn)擊開(kāi)始即可,程序將獲取所選行業(yè)下公眾號的熱門(mén)文章及最新發(fā)布文章,并儲存至文件中
最初的版本是一鍵獲取全部行業(yè)的文章,后面想想,還是自己想獲取什么行業(yè)的就獲取什么行業(yè)的
這是我的后臺療效:
其他新榜的所有ajax都帶有安全校準數組和cookie,cookie倒是好辦,登錄后獲取cookie儲存上去,帶到ajax的懇求頭中即可,至于校準數組,著(zhù)實(shí)費了一些時(shí)間,這個(gè)不再這兒闡述破解方式,有時(shí)間我會(huì )在csdn中寫(xiě)寫(xiě)破解的思路。關(guān)鍵詞搜索還沒(méi)做完,有時(shí)間補上。原本計劃把微博、簡(jiǎn)書(shū)等一并爬了,忙于其他事務(wù),就落下了。非常謝謝您的支持
擼碼不易,如果對你有所幫助,歡迎您的贊賞!微信贊賞碼: 查看全部
源碼下載請至
這是曾經(jīng)給新媒體營(yíng)運朋友寫(xiě)的爬蟲(chóng)軟件,用了一段時(shí)間就沒(méi)用了(唉、氣死我了)。
目前只抓取了新榜的日榜(周榜、月榜類(lèi)似,換下地址即可)下,各行業(yè)的前50個(gè)公眾號下的7天熱門(mén)文章和最新發(fā)布文章
如下所示:

技術(shù)構架:nw.jsjqueryelement-ui
為什么選用nw.js呢?嗯,先入為主吧,electron也很不錯(改下入口即可使用),為什么不用大名鼎鼎的python呢?爬蟲(chóng)框架而且一堆堆,還是個(gè)人習慣使然,用慣了js,操作網(wǎng)頁(yè)簡(jiǎn)直得心應手,天生絕配!在此并不證實(shí)python,個(gè)人也比較喜歡(最近在研究深度學(xué)習架構),只是認為爬這種網(wǎng)頁(yè),還用不著(zhù)它。
有一個(gè)關(guān)鍵點(diǎn),在網(wǎng)頁(yè)中,想操作iframe中的網(wǎng)頁(yè),是不容許跨域的,而nw.js容許這樣操作,真是好?。。?!
安裝步驟下載nw.js ,根據自己系統下載相應版本即可,官網(wǎng): ,若自己須要二次開(kāi)發(fā),請下載SDK版本,方可開(kāi)啟debug,使用方式詳見(jiàn)官網(wǎng),不再探討克隆APSpider,復制到nw.js目錄,啟動(dòng)cmd,打開(kāi)到當前目錄,執行 npm install 安裝依賴(lài)啟動(dòng)nw.exe 就可以使用啦使用說(shuō)明考慮完整性,本客戶(hù)端在讀取到公眾號列表及文章列表時(shí),直接儲存在article下的目錄文件中,若須要將數據儲存至數據庫,請更改assest\utils\common.js中的Ap.request.ajax方式,將log函數注釋?zhuān)瑢⑾逻叡蛔⑨尩拇a恢復即可,然后在app\config.js中配置pushStateAPI(即前端接收數據API)為自己的數據插口即可因為新榜在公眾號詳盡頁(yè)面設置了登陸權限(如:),
只有登陸后可訪(fǎng)問(wèn),并且獲取公眾號文章的插口: ,
也是帶了安全校準數組,所以登陸是必須要走的過(guò)程,所以點(diǎn)擊登陸后,程序打開(kāi)登陸頁(yè)面,并獲取二維碼,如圖:

用自己的陌陌掃一掃,授權登陸即可,程序手動(dòng)步入公眾號列表:

選擇行業(yè),點(diǎn)擊開(kāi)始即可,程序將獲取所選行業(yè)下公眾號的熱門(mén)文章及最新發(fā)布文章,并儲存至文件中
最初的版本是一鍵獲取全部行業(yè)的文章,后面想想,還是自己想獲取什么行業(yè)的就獲取什么行業(yè)的

這是我的后臺療效:


其他新榜的所有ajax都帶有安全校準數組和cookie,cookie倒是好辦,登錄后獲取cookie儲存上去,帶到ajax的懇求頭中即可,至于校準數組,著(zhù)實(shí)費了一些時(shí)間,這個(gè)不再這兒闡述破解方式,有時(shí)間我會(huì )在csdn中寫(xiě)寫(xiě)破解的思路。關(guān)鍵詞搜索還沒(méi)做完,有時(shí)間補上。原本計劃把微博、簡(jiǎn)書(shū)等一并爬了,忙于其他事務(wù),就落下了。非常謝謝您的支持
擼碼不易,如果對你有所幫助,歡迎您的贊賞!微信贊賞碼:
SEM數據剖析讀懂這兩點(diǎn),效果逐步提高!
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 162 次瀏覽 ? 2020-08-10 02:22
3、如果上面兩種因為各類(lèi)緣由沒(méi)辦法短時(shí)間內學(xué)會(huì )的話(huà),筆者建議你可以用最笨的方式,就是人工的去統計,筆者有一個(gè)顧客就是這樣的,他對于每位咨詢(xún)過(guò)他的顧客,都會(huì )主動(dòng)尋問(wèn)對方搜索的關(guān)鍵詞,以及搜索的哪些平臺,雖然太笨,但能堅持出來(lái),也是挺實(shí)用的。
以上3種基本算是全部的統計模式了,還有一些通過(guò)付費數據監控平臺進(jìn)行數據回收的渠道,由于門(mén)檻有點(diǎn)高,我們暫時(shí)不聊。
第一種通常是你們比較常用的,圖里也基本囊括了目前市面上所有的常見(jiàn)的統計平臺,各有優(yōu)劣勢。
一般比較常用的是百度統計以及微軟的Google Analytics,但是因為微軟的Google Analytics須要翻墻,比較麻煩,所以我會(huì )推薦你們去使用百度統計,因為一個(gè)百度統計基本就可以滿(mǎn)足百分之90的數據搜集需求,接下來(lái)我也會(huì )重點(diǎn)的圍繞百度統計來(lái)給你們做詳盡的解釋。
首先百度統計統計邏輯分為以下兩種:
1)頁(yè)面轉化應用場(chǎng)景:頁(yè)面轉化通常運用于以URL為統計目標的數據,直白一點(diǎn)講就是假如你要統計的數據是一個(gè)不會(huì )改變的URL鏈接,那么頁(yè)面轉化就可以幫你實(shí)現。
比如,如果你覺(jué)得網(wǎng)站上的某個(gè)頁(yè)面非常重要(如遞交訂單后出現的“購買(mǎi)成功”頁(yè)面),到達了該頁(yè)面表示訪(fǎng)客完成了你的目標,你就可以將抵達該目標頁(yè)面作為一種轉化來(lái)統計。多用于電商類(lèi)的網(wǎng)站做統計使用。
頁(yè)面轉化的設置步驟:
?。ü俜綐藴剩?br /> 2)事件轉化;這一點(diǎn)筆者會(huì )重點(diǎn)的來(lái)給你們講。首先,一般常規的顧客可以使用修改網(wǎng)站的源代碼來(lái)統計轉化目標的,源代碼須要改成百度可以辨識的標準:“id=xxx”,找到轉化目標而且可使百度成功追蹤后,你就可以輕松的搜集到你的轉化數據了。
如圖:
這里可能有些同學(xué)要問(wèn)了,如果我想統計目標是訪(fǎng)問(wèn)行為的話(huà),怎么辦?接下來(lái)筆者會(huì )詳盡講一下關(guān)于怎么來(lái)統計一些難以被普通統計代碼跟蹤PV的特殊的網(wǎng)站或頁(yè)面。
在統計之前我們須要用到百度開(kāi)放平臺的一個(gè)合同:JS-API,JS-API通過(guò)在頁(yè)面上布署js代碼的方法,可以幫你搜集網(wǎng)站的各種業(yè)務(wù)數據(溝通數、點(diǎn)擊數、轉化數)
1、在布署JS前,你的網(wǎng)站不僅須要成安裝百度統計代碼,還須要新裝一串JS-API代碼,這里須要注意一下的是,JS-API代碼必須安裝在你統計頁(yè)面的 head 標簽上面,具體代碼如下:
2、在我們進(jìn)行進(jìn)一步安裝前,你須要明白風(fēng)波轉化的基本概念,不然以后的內容你會(huì )很難讀懂。
首先風(fēng)波轉化統計的是訪(fǎng)客在網(wǎng)站操作行為,這種行為可以被選取為轉化目標,比如你是一個(gè)做視頻網(wǎng)站的顧客,你希望通過(guò)風(fēng)波轉化來(lái)統計你每晚點(diǎn)擊某一個(gè)視頻“暫?!币约啊安シ拧眱蓚€(gè)動(dòng)作的數據,那么這些統計動(dòng)作的目的,都可以運用JS-API來(lái)做實(shí)現,以此類(lèi)推,你可以統計特別多的訪(fǎng)客行為,當然這些行為就是轉化目標了。
3、因為訪(fǎng)客在網(wǎng)站的動(dòng)作是一個(gè)行為,我們須要使代碼去辨識他的行為,就必須為她們加上惟一的標示,只有正確的添加了標示,系統就會(huì )正確的捕捉到數據。具體如下:
事件鏈接中加入風(fēng)波跟蹤參數(以下引用官方解釋?zhuān)?br /> _hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
category:要監控的目標的類(lèi)型名稱(chēng),通常是同一組目標的名子,比如"視頻"、"音樂(lè )"、"軟件"、"游戲"等等。該項必選。
action:用戶(hù)跟目標交互的行為,如"播放"、"暫停"、"下載"等等。該項必選。
opt_label:事件的一些額外信息,通??梢允歉枨拿Q(chēng)、軟件的名稱(chēng)、鏈接的名稱(chēng)等等。該項可選。
opt_value:事件的一些數值信息,比如權重、時(shí)長(cháng)、價(jià)格等等,在報表中可以見(jiàn)到其平均值等數據。該項可選。
舉例說(shuō)明:
假設頁(yè)面A上有且只有一個(gè)下載鏈接,設置前后對比如下:
設置前:
設置完成后,我們就可以去百度統計設置轉化目標了,你只須要在風(fēng)波轉化中的新增頁(yè)面中降低你布署JS代碼頁(yè)面鏈接,就可以成功的獲取數據了。
02 掌握數據剖析的思索維度
當我們成功布署了屬于我們自己的數據回收通道后,我們就可以輕松的獲取我們想要數據,但是好多時(shí)侯你們可能會(huì )認為,回收了這么多數據,我該如何去整理剖析了。
接下筆者會(huì )闡述領(lǐng)到數據后,我們須要怎樣來(lái)做剖析,這里,我只提供思索方向,具體的我就不再贅言了,因為同樣的數據,拿給不同的帳戶(hù),調整策略也不一定一樣,還是那句話(huà),數據剖析要結合你實(shí)際的企業(yè)情況以及產(chǎn)品特性和客戶(hù)群特點(diǎn)。
首先,你須要通過(guò)以下幾個(gè)思索維度來(lái)把數據立體化,這樣可以幫你快速把你確定帳戶(hù)問(wèn)題:
1、賬戶(hù)數據層面,我們帳戶(hù)是否詮釋點(diǎn)擊訪(fǎng)問(wèn)屬于正常值?
思路解析:賬戶(hù)的數據直接決定了這個(gè)帳戶(hù)大的方向是否是科學(xué)健康的,比如你的預算三天是100塊,ACP為20塊錢(qián),一天可以形成5次點(diǎn)擊,那么很容易的就可以曉得,賬戶(hù)大致的優(yōu)化方向應當圍繞著(zhù)增加ACP來(lái)。
2、賬戶(hù)類(lèi)有消費關(guān)鍵詞有多少?其中有80%消費是被什么詞消耗了,80%的點(diǎn)擊集中在哪些詞頭上,占80%點(diǎn)擊的關(guān)鍵詞是什么,他們消耗占整體的消耗的多少?他們轉化成本分別是多少?
思路解析:我們常常說(shuō)的二八原則,其實(shí)是一個(gè)比較科學(xué)的理論,我這兒把二八原則做了更多的延展。
首先你帳戶(hù)內的有消費詞決定了你的廣告面對的是一個(gè)多大的人群,然后帳戶(hù)80%的消費決定了你的錢(qián)都花在哪些詞頭上,80%的點(diǎn)擊決定了你實(shí)際訂購的流量質(zhì)量。
所以我們在做帳戶(hù)數據剖析的時(shí)侯,這些一定要成比例原則的去做深入的剖析,可以幫我們快速的定位問(wèn)題,這樣可以指導我們以后的優(yōu)化動(dòng)作會(huì )在正確的公路上。
案例解析:
這是一個(gè)搬家顧客,客戶(hù)每晚的預算80塊錢(qián),根據我們思路,來(lái)簡(jiǎn)單的剖析一下這個(gè)帳戶(hù)的問(wèn)題:
數據層面:?jiǎn)稳障M80,ACP:16.40,可以顯著(zhù)的看下來(lái),這個(gè)在極其嚴重的ACP和預算不符的情況,之后的優(yōu)化方向也確定為增加ACP為主。
通過(guò)轉化數據整理后我們可以看見(jiàn),這個(gè)帳戶(hù)有轉化的詞只有一個(gè),轉化成本為18.1,點(diǎn)擊流量?jì)r(jià)錢(qián)很高且普遍和原語(yǔ)匹配程度不高,結合數據,我們可以將這個(gè)帳戶(hù)的調整方案定為:ACP須要增加,暫定目標為同比增長(cháng)50%,點(diǎn)擊質(zhì)量須要優(yōu)化,做否詞,以及修改部份不合理的匹配方法。 查看全部
文章鏈接:視頻教程 | 追蹤URL生成、批量添加、追蹤數據剖析步驟解讀
3、如果上面兩種因為各類(lèi)緣由沒(méi)辦法短時(shí)間內學(xué)會(huì )的話(huà),筆者建議你可以用最笨的方式,就是人工的去統計,筆者有一個(gè)顧客就是這樣的,他對于每位咨詢(xún)過(guò)他的顧客,都會(huì )主動(dòng)尋問(wèn)對方搜索的關(guān)鍵詞,以及搜索的哪些平臺,雖然太笨,但能堅持出來(lái),也是挺實(shí)用的。
以上3種基本算是全部的統計模式了,還有一些通過(guò)付費數據監控平臺進(jìn)行數據回收的渠道,由于門(mén)檻有點(diǎn)高,我們暫時(shí)不聊。
第一種通常是你們比較常用的,圖里也基本囊括了目前市面上所有的常見(jiàn)的統計平臺,各有優(yōu)劣勢。
一般比較常用的是百度統計以及微軟的Google Analytics,但是因為微軟的Google Analytics須要翻墻,比較麻煩,所以我會(huì )推薦你們去使用百度統計,因為一個(gè)百度統計基本就可以滿(mǎn)足百分之90的數據搜集需求,接下來(lái)我也會(huì )重點(diǎn)的圍繞百度統計來(lái)給你們做詳盡的解釋。
首先百度統計統計邏輯分為以下兩種:

1)頁(yè)面轉化應用場(chǎng)景:頁(yè)面轉化通常運用于以URL為統計目標的數據,直白一點(diǎn)講就是假如你要統計的數據是一個(gè)不會(huì )改變的URL鏈接,那么頁(yè)面轉化就可以幫你實(shí)現。
比如,如果你覺(jué)得網(wǎng)站上的某個(gè)頁(yè)面非常重要(如遞交訂單后出現的“購買(mǎi)成功”頁(yè)面),到達了該頁(yè)面表示訪(fǎng)客完成了你的目標,你就可以將抵達該目標頁(yè)面作為一種轉化來(lái)統計。多用于電商類(lèi)的網(wǎng)站做統計使用。
頁(yè)面轉化的設置步驟:
?。ü俜綐藴剩?br /> 2)事件轉化;這一點(diǎn)筆者會(huì )重點(diǎn)的來(lái)給你們講。首先,一般常規的顧客可以使用修改網(wǎng)站的源代碼來(lái)統計轉化目標的,源代碼須要改成百度可以辨識的標準:“id=xxx”,找到轉化目標而且可使百度成功追蹤后,你就可以輕松的搜集到你的轉化數據了。
如圖:

這里可能有些同學(xué)要問(wèn)了,如果我想統計目標是訪(fǎng)問(wèn)行為的話(huà),怎么辦?接下來(lái)筆者會(huì )詳盡講一下關(guān)于怎么來(lái)統計一些難以被普通統計代碼跟蹤PV的特殊的網(wǎng)站或頁(yè)面。
在統計之前我們須要用到百度開(kāi)放平臺的一個(gè)合同:JS-API,JS-API通過(guò)在頁(yè)面上布署js代碼的方法,可以幫你搜集網(wǎng)站的各種業(yè)務(wù)數據(溝通數、點(diǎn)擊數、轉化數)
1、在布署JS前,你的網(wǎng)站不僅須要成安裝百度統計代碼,還須要新裝一串JS-API代碼,這里須要注意一下的是,JS-API代碼必須安裝在你統計頁(yè)面的 head 標簽上面,具體代碼如下:
2、在我們進(jìn)行進(jìn)一步安裝前,你須要明白風(fēng)波轉化的基本概念,不然以后的內容你會(huì )很難讀懂。
首先風(fēng)波轉化統計的是訪(fǎng)客在網(wǎng)站操作行為,這種行為可以被選取為轉化目標,比如你是一個(gè)做視頻網(wǎng)站的顧客,你希望通過(guò)風(fēng)波轉化來(lái)統計你每晚點(diǎn)擊某一個(gè)視頻“暫?!币约啊安シ拧眱蓚€(gè)動(dòng)作的數據,那么這些統計動(dòng)作的目的,都可以運用JS-API來(lái)做實(shí)現,以此類(lèi)推,你可以統計特別多的訪(fǎng)客行為,當然這些行為就是轉化目標了。
3、因為訪(fǎng)客在網(wǎng)站的動(dòng)作是一個(gè)行為,我們須要使代碼去辨識他的行為,就必須為她們加上惟一的標示,只有正確的添加了標示,系統就會(huì )正確的捕捉到數據。具體如下:
事件鏈接中加入風(fēng)波跟蹤參數(以下引用官方解釋?zhuān)?br /> _hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
category:要監控的目標的類(lèi)型名稱(chēng),通常是同一組目標的名子,比如"視頻"、"音樂(lè )"、"軟件"、"游戲"等等。該項必選。
action:用戶(hù)跟目標交互的行為,如"播放"、"暫停"、"下載"等等。該項必選。
opt_label:事件的一些額外信息,通??梢允歉枨拿Q(chēng)、軟件的名稱(chēng)、鏈接的名稱(chēng)等等。該項可選。
opt_value:事件的一些數值信息,比如權重、時(shí)長(cháng)、價(jià)格等等,在報表中可以見(jiàn)到其平均值等數據。該項可選。
舉例說(shuō)明:
假設頁(yè)面A上有且只有一個(gè)下載鏈接,設置前后對比如下:
設置前:
設置完成后,我們就可以去百度統計設置轉化目標了,你只須要在風(fēng)波轉化中的新增頁(yè)面中降低你布署JS代碼頁(yè)面鏈接,就可以成功的獲取數據了。
02 掌握數據剖析的思索維度
當我們成功布署了屬于我們自己的數據回收通道后,我們就可以輕松的獲取我們想要數據,但是好多時(shí)侯你們可能會(huì )認為,回收了這么多數據,我該如何去整理剖析了。
接下筆者會(huì )闡述領(lǐng)到數據后,我們須要怎樣來(lái)做剖析,這里,我只提供思索方向,具體的我就不再贅言了,因為同樣的數據,拿給不同的帳戶(hù),調整策略也不一定一樣,還是那句話(huà),數據剖析要結合你實(shí)際的企業(yè)情況以及產(chǎn)品特性和客戶(hù)群特點(diǎn)。
首先,你須要通過(guò)以下幾個(gè)思索維度來(lái)把數據立體化,這樣可以幫你快速把你確定帳戶(hù)問(wèn)題:
1、賬戶(hù)數據層面,我們帳戶(hù)是否詮釋點(diǎn)擊訪(fǎng)問(wèn)屬于正常值?
思路解析:賬戶(hù)的數據直接決定了這個(gè)帳戶(hù)大的方向是否是科學(xué)健康的,比如你的預算三天是100塊,ACP為20塊錢(qián),一天可以形成5次點(diǎn)擊,那么很容易的就可以曉得,賬戶(hù)大致的優(yōu)化方向應當圍繞著(zhù)增加ACP來(lái)。
2、賬戶(hù)類(lèi)有消費關(guān)鍵詞有多少?其中有80%消費是被什么詞消耗了,80%的點(diǎn)擊集中在哪些詞頭上,占80%點(diǎn)擊的關(guān)鍵詞是什么,他們消耗占整體的消耗的多少?他們轉化成本分別是多少?
思路解析:我們常常說(shuō)的二八原則,其實(shí)是一個(gè)比較科學(xué)的理論,我這兒把二八原則做了更多的延展。
首先你帳戶(hù)內的有消費詞決定了你的廣告面對的是一個(gè)多大的人群,然后帳戶(hù)80%的消費決定了你的錢(qián)都花在哪些詞頭上,80%的點(diǎn)擊決定了你實(shí)際訂購的流量質(zhì)量。
所以我們在做帳戶(hù)數據剖析的時(shí)侯,這些一定要成比例原則的去做深入的剖析,可以幫我們快速的定位問(wèn)題,這樣可以指導我們以后的優(yōu)化動(dòng)作會(huì )在正確的公路上。
案例解析:
這是一個(gè)搬家顧客,客戶(hù)每晚的預算80塊錢(qián),根據我們思路,來(lái)簡(jiǎn)單的剖析一下這個(gè)帳戶(hù)的問(wèn)題:

數據層面:?jiǎn)稳障M80,ACP:16.40,可以顯著(zhù)的看下來(lái),這個(gè)在極其嚴重的ACP和預算不符的情況,之后的優(yōu)化方向也確定為增加ACP為主。

通過(guò)轉化數據整理后我們可以看見(jiàn),這個(gè)帳戶(hù)有轉化的詞只有一個(gè),轉化成本為18.1,點(diǎn)擊流量?jì)r(jià)錢(qián)很高且普遍和原語(yǔ)匹配程度不高,結合數據,我們可以將這個(gè)帳戶(hù)的調整方案定為:ACP須要增加,暫定目標為同比增長(cháng)50%,點(diǎn)擊質(zhì)量須要優(yōu)化,做否詞,以及修改部份不合理的匹配方法。
如何獲取新浪微博數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 230 次瀏覽 ? 2020-08-10 01:37
在歷史數據獲取方面,與twitter相比,搜索插口比較弱,好在提供了搜索功能。
在實(shí)時(shí)數據獲取方面,sina 還是比較保守。與之相關(guān)的有三個(gè)插口用public_timeline、topics、nearby_timeline,分別拿來(lái)搜集公共的實(shí)時(shí)微博、某個(gè)話(huà)題下的實(shí)時(shí)微博、某點(diǎn)周?chē)膶?shí)時(shí)微博。由此可以看出:缺乏在某地點(diǎn)關(guān)于某關(guān)鍵詞的實(shí)時(shí)搜索插口。雖然有眾多限制,但依然有替代方案是:利用搜索功能可以進(jìn)行搜集一個(gè)小時(shí)前微博的,同時(shí)可以對關(guān)鍵字和地點(diǎn)進(jìn)行限制,等等。下面從歷史和實(shí)時(shí)數據兩個(gè)方面來(lái)述說(shuō)獲取微博數據。
數據搜集思路
歷史數據在科研方面很重要,特別是研究社交媒體方向。但是歷史數據也是有要求的,首先要主題相關(guān),然后歷史也有個(gè)具體時(shí)間段。結合這兩個(gè)要求的考慮,可以使用微博的中級搜索插口(詳見(jiàn))。
主要思路是:抓取網(wǎng)頁(yè);解析網(wǎng)頁(yè);存儲有用信息。
值得注意的是:我們可以選擇解析網(wǎng)頁(yè)的全部信息,包括微博文和用戶(hù)的部份信息,但這樣獲得的信息相對較少。這時(shí)可以考慮只從網(wǎng)頁(yè)中提取出微博的id,然后通過(guò)API來(lái)返回該微博的所有信息,包括用戶(hù)信息。
實(shí)時(shí)數據的主要作用可以彰顯在一些應用上,譬如實(shí)時(shí)檢測公眾對突發(fā)事件的反應。
主要思路是:實(shí)時(shí)數據的一條路徑為,利用微博提供的API進(jìn)行搜索。這里不表,調用API即可。另一條就是,上文提及的借助搜索功能搜集一個(gè)小時(shí)前的逾實(shí)時(shí)數據。
遇到的問(wèn)題
即每個(gè)小時(shí)對API的訪(fǎng)問(wèn)有次數限制。新浪微博API采用OAuth2進(jìn)行授權,有嚴格的訪(fǎng)問(wèn)權限和對應的訪(fǎng)問(wèn)頻次。一種走正規流程,申請appKey并獲得appSecret,從而的得到相應的權限和對應的訪(fǎng)問(wèn)頻次。當然還有其他方式可以避免這些限制。獲取OAuth2授權的形式不止這一種(可參考)。文中提及可以通過(guò)基于用戶(hù)名與密碼模式,這樣我們可以通過(guò)構造類(lèi)似 :
grant_type=password&client_id=s6BhdRkqt3&client_secret=47HDu8s&username=johndoe&password=A3ddj3w
這樣的URL懇求來(lái)申請Access Token。這時(shí)還是須要一個(gè)中級權限的appKey和appSecret。很幸運的是,很多APP和客戶(hù)端的官方微博appKey和appSecret在網(wǎng)路上都可以找到(可參見(jiàn))
原文點(diǎn)此 查看全部
無(wú)論是做與微博相關(guān)研究還是開(kāi)發(fā)相關(guān)應用,可能須要獲取歷史的或則實(shí)時(shí)的數據。如何獲取呢?除了新浪微博為開(kāi)發(fā)者提供了API, 還可以借助搜索功能(詳見(jiàn)此文)來(lái)搜集數據。
在歷史數據獲取方面,與twitter相比,搜索插口比較弱,好在提供了搜索功能。
在實(shí)時(shí)數據獲取方面,sina 還是比較保守。與之相關(guān)的有三個(gè)插口用public_timeline、topics、nearby_timeline,分別拿來(lái)搜集公共的實(shí)時(shí)微博、某個(gè)話(huà)題下的實(shí)時(shí)微博、某點(diǎn)周?chē)膶?shí)時(shí)微博。由此可以看出:缺乏在某地點(diǎn)關(guān)于某關(guān)鍵詞的實(shí)時(shí)搜索插口。雖然有眾多限制,但依然有替代方案是:利用搜索功能可以進(jìn)行搜集一個(gè)小時(shí)前微博的,同時(shí)可以對關(guān)鍵字和地點(diǎn)進(jìn)行限制,等等。下面從歷史和實(shí)時(shí)數據兩個(gè)方面來(lái)述說(shuō)獲取微博數據。
數據搜集思路
歷史數據在科研方面很重要,特別是研究社交媒體方向。但是歷史數據也是有要求的,首先要主題相關(guān),然后歷史也有個(gè)具體時(shí)間段。結合這兩個(gè)要求的考慮,可以使用微博的中級搜索插口(詳見(jiàn))。
主要思路是:抓取網(wǎng)頁(yè);解析網(wǎng)頁(yè);存儲有用信息。
值得注意的是:我們可以選擇解析網(wǎng)頁(yè)的全部信息,包括微博文和用戶(hù)的部份信息,但這樣獲得的信息相對較少。這時(shí)可以考慮只從網(wǎng)頁(yè)中提取出微博的id,然后通過(guò)API來(lái)返回該微博的所有信息,包括用戶(hù)信息。
實(shí)時(shí)數據的主要作用可以彰顯在一些應用上,譬如實(shí)時(shí)檢測公眾對突發(fā)事件的反應。
主要思路是:實(shí)時(shí)數據的一條路徑為,利用微博提供的API進(jìn)行搜索。這里不表,調用API即可。另一條就是,上文提及的借助搜索功能搜集一個(gè)小時(shí)前的逾實(shí)時(shí)數據。
遇到的問(wèn)題
即每個(gè)小時(shí)對API的訪(fǎng)問(wèn)有次數限制。新浪微博API采用OAuth2進(jìn)行授權,有嚴格的訪(fǎng)問(wèn)權限和對應的訪(fǎng)問(wèn)頻次。一種走正規流程,申請appKey并獲得appSecret,從而的得到相應的權限和對應的訪(fǎng)問(wèn)頻次。當然還有其他方式可以避免這些限制。獲取OAuth2授權的形式不止這一種(可參考)。文中提及可以通過(guò)基于用戶(hù)名與密碼模式,這樣我們可以通過(guò)構造類(lèi)似 :
grant_type=password&client_id=s6BhdRkqt3&client_secret=47HDu8s&username=johndoe&password=A3ddj3w
這樣的URL懇求來(lái)申請Access Token。這時(shí)還是須要一個(gè)中級權限的appKey和appSecret。很幸運的是,很多APP和客戶(hù)端的官方微博appKey和appSecret在網(wǎng)路上都可以找到(可參見(jiàn))
原文點(diǎn)此
如何高貴地拿下公眾號歷史文章、點(diǎn)贊數、閱讀數,甚至是評論?
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 188 次瀏覽 ? 2020-08-10 01:12
可能我們熟知的新榜、清博這種平臺提供這樣的數據,但是價(jià)錢(qián)卻使人望而止步。比如我們在新榜想獲取人民日報的所有歷史文章,竟然須要300榜豆,而300榜豆須要多少錢(qián)呢?285 人民幣?。?!
新榜采集公眾號歷史文章
采集價(jià)格
我想這個(gè)費用不是大多數自媒體工作者都還能承當的起的,包括我曾今也想過(guò)訂購這樣的服務(wù),但最終還是止住了,作為一個(gè)開(kāi)發(fā)者,這些問(wèn)題才能自己解決就不要去破費了,于是,我決定開(kāi)發(fā)一款這樣的工具,能夠幫助象我一樣須要快速獲得公眾號歷史文章數據的人更便捷、更經(jīng)濟地達到目的,所以便有了如今的小蜜蜂公眾號文章助手
小蜜蜂公眾號文章助手
助手實(shí)現的功能
助手界面
鏈接模式
代理模式
其中鏈接模式最為簡(jiǎn)單,僅需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式須要幾分鐘的設置,設置好后即可開(kāi)始采集
image.png
公眾號列表
采集結果列表
采集成功后,可到公眾號列表查看采集的結果,可以看見(jiàn)有文章數量、名稱(chēng)、以及一些導入文檔的操作 查看全部
相信,不少營(yíng)運工作者在日常工作中會(huì )碰到這樣的需求,經(jīng)常須要研究競爭對手的公眾號文章數據或則自己公眾號數據,然而微信公眾平臺并沒(méi)有提供這樣的方便操作,可以支持將公眾號數據導下來(lái)研究。
可能我們熟知的新榜、清博這種平臺提供這樣的數據,但是價(jià)錢(qián)卻使人望而止步。比如我們在新榜想獲取人民日報的所有歷史文章,竟然須要300榜豆,而300榜豆須要多少錢(qián)呢?285 人民幣?。?!

新榜采集公眾號歷史文章

采集價(jià)格
我想這個(gè)費用不是大多數自媒體工作者都還能承當的起的,包括我曾今也想過(guò)訂購這樣的服務(wù),但最終還是止住了,作為一個(gè)開(kāi)發(fā)者,這些問(wèn)題才能自己解決就不要去破費了,于是,我決定開(kāi)發(fā)一款這樣的工具,能夠幫助象我一樣須要快速獲得公眾號歷史文章數據的人更便捷、更經(jīng)濟地達到目的,所以便有了如今的小蜜蜂公眾號文章助手

小蜜蜂公眾號文章助手
助手實(shí)現的功能
助手界面

鏈接模式

代理模式
其中鏈接模式最為簡(jiǎn)單,僅需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式須要幾分鐘的設置,設置好后即可開(kāi)始采集

image.png
公眾號列表

采集結果列表
采集成功后,可到公眾號列表查看采集的結果,可以看見(jiàn)有文章數量、名稱(chēng)、以及一些導入文檔的操作
阿里云推薦引擎離線(xiàn)流程的主要作用是 site:blog.csdn.net
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 178 次瀏覽 ? 2020-08-10 00:18
推薦引擎(Recommendation Engine,以下簡(jiǎn)稱(chēng)RecEng,特指阿里云推薦引擎)是在阿里云估算環(huán)境下構建的一套推薦服務(wù)框架,目標是使廣大中小互聯(lián)網(wǎng)企業(yè)能否在這套框架上快速的搭建滿(mǎn)足自身業(yè)務(wù)需求的推薦服務(wù)。
課程鏈接:阿里云推薦引擎使用教程
推薦服務(wù)一般由三部份組成:日志采集,推薦估算和產(chǎn)品對接。推薦服務(wù)首先須要采集產(chǎn)品中記錄的用戶(hù)行為日志到離線(xiàn)存儲,然后在離線(xiàn)環(huán)境下借助推薦算法進(jìn)行用戶(hù)和物品的匹配估算,找出每位用戶(hù)可能感興趣的物品集合后,將這種預先估算好的結果推送到在線(xiàn)儲存上,最終產(chǎn)品在有用戶(hù)訪(fǎng)問(wèn)時(shí)通過(guò)在線(xiàn)API向推薦服務(wù)發(fā)起懇求,獲得該用戶(hù)可能感興趣的物品,完成推薦業(yè)務(wù)。
RecEng的核心是推薦算法的訂制。RecEng為推薦業(yè)務(wù)定義了一套完整的規范,從輸入,到估算,到輸出,客戶(hù)可以在這個(gè)框架下自定義算法和規則,以此滿(mǎn)足各類(lèi)行業(yè)的需求,包括電商,音樂(lè ),視頻,社交,新聞,閱讀等。同時(shí),RecEng也提供了相應的方式供顧客方便的接入用戶(hù)訪(fǎng)問(wèn)日志,以及自定義滿(mǎn)足其自身業(yè)務(wù)需求的在線(xiàn)API。
基本概念:
客戶(hù)/租戶(hù)(org/tenant)
指RecEng的使用者,系統中由其阿里云帳號代表。通常顧客是一個(gè)組織,RecEng中常用org表示顧客。
用戶(hù)(user)
指顧客的用戶(hù),即RecEng使用者的用戶(hù)。推薦是一個(gè)2C的服務(wù),使用推薦服務(wù)的顧客必然有其自己的用戶(hù),RecEng使用者的用戶(hù)簡(jiǎn)稱(chēng)為“用戶(hù)”,系統中常用user表示用戶(hù)。
物品(item)
指被推薦給用戶(hù)的內容,可以是商品,也可以是歌曲,視頻等其他內容,系統中常用item表示物品。
業(yè)務(wù)(biz)
業(yè)務(wù)針對數據集定義,定義了算法所能使用的數據范圍。一個(gè)顧客在RecEng上可以有多個(gè)業(yè)務(wù),不同的業(yè)務(wù)必然有不同的數據集。RecEng要求每位業(yè)務(wù)提供四類(lèi)數據(不要求全部提供):用戶(hù)數據,物品數據,用戶(hù)行為數據,推薦療效數據。每一組這樣的數據就構成一個(gè)業(yè)務(wù)。系統中常用biz表示業(yè)務(wù)。
比如某顧客A有兩類(lèi)被推薦的物品,分別是視頻和歌曲,于是顧客A可以在RecEng上構建兩個(gè)業(yè)務(wù)M和N,其中M的物品數據為視頻,N的物品數據為歌曲,其他的數據(指用戶(hù)數據,用戶(hù)行為數據等)可以都相同。在這些方案下,業(yè)務(wù)M和N的數據是獨立的,即業(yè)務(wù)M其實(shí)能看到用戶(hù)對于歌曲的行為,但是業(yè)務(wù)M中不收錄歌曲的物品數據,所以會(huì )扔掉用戶(hù)對于歌曲的行為;如果業(yè)務(wù)M中某用戶(hù)只對歌曲有行為,對視頻沒(méi)有行為,業(yè)務(wù)M也會(huì )扔掉這類(lèi)用戶(hù)。反之對業(yè)務(wù)N亦然。
一個(gè)業(yè)務(wù)最好只推薦一類(lèi)物品。多類(lèi)物品的推薦在后續的行業(yè)模板會(huì )有支持,需要引入藍籌股(plate)的概念,一份業(yè)務(wù)數據可以生成多個(gè)藍籌股的數據集,場(chǎng)景綁定某個(gè)藍籌股進(jìn)行推薦算法估算。
場(chǎng)景(scn)
場(chǎng)景指的是推薦的上下文,每個(gè)場(chǎng)景就會(huì )輸出一個(gè)API,場(chǎng)景由推薦時(shí)可用的參數決定。有兩種場(chǎng)景最為常見(jiàn),分別是首頁(yè)推薦場(chǎng)景和詳情頁(yè)推薦場(chǎng)景。顧名思義,在執行首頁(yè)推薦時(shí),可用的參數只有用戶(hù)信息;而在執行詳情頁(yè)推薦時(shí),可用的參數不僅用戶(hù)信息,還包括當前詳情頁(yè)上所展示的物品信息。系統中常用scn表示場(chǎng)景。
一個(gè)業(yè)務(wù)可以收錄多個(gè)場(chǎng)景,即對于某個(gè)業(yè)務(wù)A,它收錄多個(gè)首頁(yè)場(chǎng)景也是完全可以的。
事實(shí)上,回到場(chǎng)景的原創(chuàng )定義,場(chǎng)景只是由推薦的上下文決定,客戶(hù)完全可以按照自己的需求構建全新的場(chǎng)景,比如針對搜索關(guān)鍵詞的推薦場(chǎng)景,這時(shí)可用的參數不僅用戶(hù)信息,還有用戶(hù)所輸入的關(guān)鍵詞。
流程(flow)
算法流程指數據端到端的處理流程,一部分流程屬于業(yè)務(wù)范疇,如數據導出流程,效果估算流程,數據質(zhì)量分估算流程;一部分屬于場(chǎng)景,比如場(chǎng)景算法流程。從數據源類(lèi)型和產(chǎn)下來(lái)界定,又分為離線(xiàn)流程,近線(xiàn)流程,在線(xiàn)流程
離線(xiàn)流程
一般情況下,離線(xiàn)流程的輸入和輸出都是MaxCompute(原ODPS)表,所以離線(xiàn)數據規范雖然上是一組MaxCompute表的格式規范,包括接入數據、中間數據和輸出數據三類(lèi)數據的格式規范。接入數據指顧客離線(xiàn)提供的用戶(hù)、物品、日志等數據,中間數據是在離線(xiàn)算法流程中形成的各類(lèi)中間性質(zhì)的結果數據表,輸出數據是指推薦結果數據表,該結果最終將會(huì )被導出到在線(xiàn)儲存中,供在線(xiàn)估算模塊使用。
近線(xiàn)流程
推薦引擎的的近線(xiàn)流程主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新。不象離線(xiàn)算法,天然以MaxCompute(原ODPS)表作為輸入和輸出,近線(xiàn)程序的輸入數據可以來(lái)自多個(gè)數據源,如在線(xiàn)的表格儲存(原OTS),以及用戶(hù)的API懇求,又或則是程序中的變量;輸出可以是程序變量,或者寫(xiě)回在線(xiàn)儲存,或者返回給用戶(hù)。出于安全性考慮,推薦引擎提供了一組SDK供顧客自定義在線(xiàn)代碼讀寫(xiě)在線(xiàn)儲存(Table Store),不容許直接訪(fǎng)問(wèn),所以須要定義每類(lèi)在線(xiàn)儲存的別稱(chēng)和格式。對于須要頻繁使用的在線(xiàn)數據,無(wú)論其來(lái)自在線(xiàn)儲存還是用戶(hù)的API懇求,RecEng會(huì )預先讀好,保存在在線(xiàn)程序的變量中,客戶(hù)自定義代碼可以直接讀寫(xiě)這種變量中的數據。
在線(xiàn)流程
推薦引擎的的在線(xiàn)流程負責的任務(wù)是推薦API接收到API懇求時(shí),實(shí)時(shí)對離線(xiàn)和逾線(xiàn)修正形成的推薦結果進(jìn)行過(guò)濾、排重、補足等處理;后者主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新
一個(gè)場(chǎng)景只收錄一個(gè)離線(xiàn)流程和一個(gè)逾線(xiàn)流程,可以收錄多個(gè)在線(xiàn)流程,用于支持A/BTest。
算法策略(Algorithm Strategy)
算法策略定義了一套離線(xiàn)/近線(xiàn)流程。并且透出相關(guān)的算法參數,幫助顧客建立自己的算法流程。一個(gè)場(chǎng)景可以配置多個(gè)算法策略,最終會(huì )合并執行,產(chǎn)出一系列推薦候選集和過(guò)濾集,在線(xiàn)流程通過(guò)引用那些候選集來(lái)完成個(gè)性化推薦。
作業(yè)/任務(wù)(task)
作業(yè)指運行中的離線(xiàn)流程實(shí)例,作業(yè)和離線(xiàn)流程的關(guān)系完全等同于進(jìn)程和程序的關(guān)系。每個(gè)作業(yè)都是不可重入的,即對每位離線(xiàn)流程,同一時(shí)間只容許運行一份實(shí)例。作業(yè)直接存在上下游關(guān)系,如果上游作業(yè)失敗,下游任務(wù)也會(huì )被取消。
更多精品課程點(diǎn)擊:阿里云大學(xué) 查看全部
產(chǎn)品概述:
推薦引擎(Recommendation Engine,以下簡(jiǎn)稱(chēng)RecEng,特指阿里云推薦引擎)是在阿里云估算環(huán)境下構建的一套推薦服務(wù)框架,目標是使廣大中小互聯(lián)網(wǎng)企業(yè)能否在這套框架上快速的搭建滿(mǎn)足自身業(yè)務(wù)需求的推薦服務(wù)。
課程鏈接:阿里云推薦引擎使用教程
推薦服務(wù)一般由三部份組成:日志采集,推薦估算和產(chǎn)品對接。推薦服務(wù)首先須要采集產(chǎn)品中記錄的用戶(hù)行為日志到離線(xiàn)存儲,然后在離線(xiàn)環(huán)境下借助推薦算法進(jìn)行用戶(hù)和物品的匹配估算,找出每位用戶(hù)可能感興趣的物品集合后,將這種預先估算好的結果推送到在線(xiàn)儲存上,最終產(chǎn)品在有用戶(hù)訪(fǎng)問(wèn)時(shí)通過(guò)在線(xiàn)API向推薦服務(wù)發(fā)起懇求,獲得該用戶(hù)可能感興趣的物品,完成推薦業(yè)務(wù)。
RecEng的核心是推薦算法的訂制。RecEng為推薦業(yè)務(wù)定義了一套完整的規范,從輸入,到估算,到輸出,客戶(hù)可以在這個(gè)框架下自定義算法和規則,以此滿(mǎn)足各類(lèi)行業(yè)的需求,包括電商,音樂(lè ),視頻,社交,新聞,閱讀等。同時(shí),RecEng也提供了相應的方式供顧客方便的接入用戶(hù)訪(fǎng)問(wèn)日志,以及自定義滿(mǎn)足其自身業(yè)務(wù)需求的在線(xiàn)API。
基本概念:
客戶(hù)/租戶(hù)(org/tenant)
指RecEng的使用者,系統中由其阿里云帳號代表。通常顧客是一個(gè)組織,RecEng中常用org表示顧客。
用戶(hù)(user)
指顧客的用戶(hù),即RecEng使用者的用戶(hù)。推薦是一個(gè)2C的服務(wù),使用推薦服務(wù)的顧客必然有其自己的用戶(hù),RecEng使用者的用戶(hù)簡(jiǎn)稱(chēng)為“用戶(hù)”,系統中常用user表示用戶(hù)。
物品(item)
指被推薦給用戶(hù)的內容,可以是商品,也可以是歌曲,視頻等其他內容,系統中常用item表示物品。
業(yè)務(wù)(biz)
業(yè)務(wù)針對數據集定義,定義了算法所能使用的數據范圍。一個(gè)顧客在RecEng上可以有多個(gè)業(yè)務(wù),不同的業(yè)務(wù)必然有不同的數據集。RecEng要求每位業(yè)務(wù)提供四類(lèi)數據(不要求全部提供):用戶(hù)數據,物品數據,用戶(hù)行為數據,推薦療效數據。每一組這樣的數據就構成一個(gè)業(yè)務(wù)。系統中常用biz表示業(yè)務(wù)。
比如某顧客A有兩類(lèi)被推薦的物品,分別是視頻和歌曲,于是顧客A可以在RecEng上構建兩個(gè)業(yè)務(wù)M和N,其中M的物品數據為視頻,N的物品數據為歌曲,其他的數據(指用戶(hù)數據,用戶(hù)行為數據等)可以都相同。在這些方案下,業(yè)務(wù)M和N的數據是獨立的,即業(yè)務(wù)M其實(shí)能看到用戶(hù)對于歌曲的行為,但是業(yè)務(wù)M中不收錄歌曲的物品數據,所以會(huì )扔掉用戶(hù)對于歌曲的行為;如果業(yè)務(wù)M中某用戶(hù)只對歌曲有行為,對視頻沒(méi)有行為,業(yè)務(wù)M也會(huì )扔掉這類(lèi)用戶(hù)。反之對業(yè)務(wù)N亦然。
一個(gè)業(yè)務(wù)最好只推薦一類(lèi)物品。多類(lèi)物品的推薦在后續的行業(yè)模板會(huì )有支持,需要引入藍籌股(plate)的概念,一份業(yè)務(wù)數據可以生成多個(gè)藍籌股的數據集,場(chǎng)景綁定某個(gè)藍籌股進(jìn)行推薦算法估算。
場(chǎng)景(scn)
場(chǎng)景指的是推薦的上下文,每個(gè)場(chǎng)景就會(huì )輸出一個(gè)API,場(chǎng)景由推薦時(shí)可用的參數決定。有兩種場(chǎng)景最為常見(jiàn),分別是首頁(yè)推薦場(chǎng)景和詳情頁(yè)推薦場(chǎng)景。顧名思義,在執行首頁(yè)推薦時(shí),可用的參數只有用戶(hù)信息;而在執行詳情頁(yè)推薦時(shí),可用的參數不僅用戶(hù)信息,還包括當前詳情頁(yè)上所展示的物品信息。系統中常用scn表示場(chǎng)景。
一個(gè)業(yè)務(wù)可以收錄多個(gè)場(chǎng)景,即對于某個(gè)業(yè)務(wù)A,它收錄多個(gè)首頁(yè)場(chǎng)景也是完全可以的。
事實(shí)上,回到場(chǎng)景的原創(chuàng )定義,場(chǎng)景只是由推薦的上下文決定,客戶(hù)完全可以按照自己的需求構建全新的場(chǎng)景,比如針對搜索關(guān)鍵詞的推薦場(chǎng)景,這時(shí)可用的參數不僅用戶(hù)信息,還有用戶(hù)所輸入的關(guān)鍵詞。
流程(flow)
算法流程指數據端到端的處理流程,一部分流程屬于業(yè)務(wù)范疇,如數據導出流程,效果估算流程,數據質(zhì)量分估算流程;一部分屬于場(chǎng)景,比如場(chǎng)景算法流程。從數據源類(lèi)型和產(chǎn)下來(lái)界定,又分為離線(xiàn)流程,近線(xiàn)流程,在線(xiàn)流程
離線(xiàn)流程
一般情況下,離線(xiàn)流程的輸入和輸出都是MaxCompute(原ODPS)表,所以離線(xiàn)數據規范雖然上是一組MaxCompute表的格式規范,包括接入數據、中間數據和輸出數據三類(lèi)數據的格式規范。接入數據指顧客離線(xiàn)提供的用戶(hù)、物品、日志等數據,中間數據是在離線(xiàn)算法流程中形成的各類(lèi)中間性質(zhì)的結果數據表,輸出數據是指推薦結果數據表,該結果最終將會(huì )被導出到在線(xiàn)儲存中,供在線(xiàn)估算模塊使用。
近線(xiàn)流程
推薦引擎的的近線(xiàn)流程主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新。不象離線(xiàn)算法,天然以MaxCompute(原ODPS)表作為輸入和輸出,近線(xiàn)程序的輸入數據可以來(lái)自多個(gè)數據源,如在線(xiàn)的表格儲存(原OTS),以及用戶(hù)的API懇求,又或則是程序中的變量;輸出可以是程序變量,或者寫(xiě)回在線(xiàn)儲存,或者返回給用戶(hù)。出于安全性考慮,推薦引擎提供了一組SDK供顧客自定義在線(xiàn)代碼讀寫(xiě)在線(xiàn)儲存(Table Store),不容許直接訪(fǎng)問(wèn),所以須要定義每類(lèi)在線(xiàn)儲存的別稱(chēng)和格式。對于須要頻繁使用的在線(xiàn)數據,無(wú)論其來(lái)自在線(xiàn)儲存還是用戶(hù)的API懇求,RecEng會(huì )預先讀好,保存在在線(xiàn)程序的變量中,客戶(hù)自定義代碼可以直接讀寫(xiě)這種變量中的數據。
在線(xiàn)流程
推薦引擎的的在線(xiàn)流程負責的任務(wù)是推薦API接收到API懇求時(shí),實(shí)時(shí)對離線(xiàn)和逾線(xiàn)修正形成的推薦結果進(jìn)行過(guò)濾、排重、補足等處理;后者主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新
一個(gè)場(chǎng)景只收錄一個(gè)離線(xiàn)流程和一個(gè)逾線(xiàn)流程,可以收錄多個(gè)在線(xiàn)流程,用于支持A/BTest。
算法策略(Algorithm Strategy)
算法策略定義了一套離線(xiàn)/近線(xiàn)流程。并且透出相關(guān)的算法參數,幫助顧客建立自己的算法流程。一個(gè)場(chǎng)景可以配置多個(gè)算法策略,最終會(huì )合并執行,產(chǎn)出一系列推薦候選集和過(guò)濾集,在線(xiàn)流程通過(guò)引用那些候選集來(lái)完成個(gè)性化推薦。
作業(yè)/任務(wù)(task)
作業(yè)指運行中的離線(xiàn)流程實(shí)例,作業(yè)和離線(xiàn)流程的關(guān)系完全等同于進(jìn)程和程序的關(guān)系。每個(gè)作業(yè)都是不可重入的,即對每位離線(xiàn)流程,同一時(shí)間只容許運行一份實(shí)例。作業(yè)直接存在上下游關(guān)系,如果上游作業(yè)失敗,下游任務(wù)也會(huì )被取消。
更多精品課程點(diǎn)擊:阿里云大學(xué)
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 759 次瀏覽 ? 2020-08-09 19:43
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
這段時(shí)間仍然在處理數據采集的問(wèn)題,目前平臺數據采集趨于穩定,可以抽出時(shí)間來(lái)整理一下近日的成果,順便介紹一些近日用到的技術(shù)。本篇文章偏向技術(shù),需要讀者有一定的技術(shù)基礎,主要介紹數據采集過(guò)程中用到的利器mitmproxy,以及平臺的一些技術(shù)設計。以下是數據采集整體的設計,左邊是客戶(hù)機,在里面放置了不同的采集器,采集器發(fā)起懇求以后,通過(guò)mitmproxy訪(fǎng)問(wèn)抖音,等數據回傳以后,通過(guò)中間的解析器對數據進(jìn)行解析,最后分門(mén)別類(lèi)的儲存到數據庫中,為了提高性能,在中間加入了緩存,把采集器和解析器分隔開(kāi),兩個(gè)模塊之間工作互不影響,可以最大限度的把數據入庫,下圖為第一代構架設計,后續會(huì )有一篇文章介紹平臺構架設計的三代演化史。
準備工作
開(kāi)始步入數據采集的打算工作,第一步自然是環(huán)境搭建,本次我們在windows環(huán)境下,采用python3.6.6環(huán)境,抓包和代理工具是mitmproxy,也可以使用Fiddler抓包,采用夜神模擬器來(lái)模擬安卓運行環(huán)境(也可以用真機),這次主要通過(guò)自動(dòng)滑動(dòng)app來(lái)抓取數據,下次介紹采用Appium自動(dòng)化工具,實(shí)現數據采集的全手動(dòng)(解放右手)。
1、安裝python3.6.6環(huán)境,安裝過(guò)程可自行百度,需要注意的是,centos7自帶的是python2.7,需要升級到python3.6.6環(huán)境,升級之前主要先安裝ssl模塊,否則升級好的版本未能訪(fǎng)問(wèn)https的懇求。
2、安裝mitmproxy,安裝好python環(huán)境后,在命令行執行pip install mitmproxy安裝mitmproxy,注:windows下只有mitmdump和mitmweb可以使用,安裝好后在命令行輸入mitmdump即可啟動(dòng),默認啟動(dòng)的代理端口為8080。
3、安裝夜神模擬器,可以在官網(wǎng)下載安裝包,安裝教程自行百度即可,基本都是下一步。安裝好夜神模擬器以后,需要對夜神模擬器進(jìn)行配置。首先須要設置模擬器的網(wǎng)路為自動(dòng)代理,IP地址為windows的IP,端口為mitmproxy的代理端口。
4、接下來(lái)是證書(shū)的安裝,打開(kāi)模擬器中的瀏覽器,輸入地址mitm.it,選擇對應版本的證書(shū),安裝好后,就可以進(jìn)行抓包了。
5、安裝app,app安裝包可以到官網(wǎng)下載,然后通過(guò)拖放進(jìn)模擬器就可以安裝,或者在應用市場(chǎng)進(jìn)行安裝。
至此,本次數據采集環(huán)境就全部搭建完成。
數據插口剖析 抓包
搭建好環(huán)境以后就開(kāi)始對抖音app進(jìn)行數據抓包,分析出每位功能所使用的插口,本次以采集視頻數據插口為例介紹。
關(guān)閉之前打開(kāi)的mitmdump,重新打開(kāi)mitmweb工具,mitmweb是一個(gè)圖形化的版本,就不用對著(zhù)黑框框找了,如下圖:
啟動(dòng)以后打開(kāi)模擬器的抖音app,可以看見(jiàn)早已有數據包解析下來(lái)了,然后步入用戶(hù)主頁(yè),開(kāi)始下降視頻,在數據包列表中可以找到懇求視頻數據的插口
可以在左邊看見(jiàn)插口的懇求數據和響應數據,我們將響應數據復制下來(lái),進(jìn)入下一步解析。
數據解析
通過(guò)mitmproxy和python代碼的結合,我們就可以在代碼中獲取到mitmproxy中的數據包,進(jìn)而可以根據需求來(lái)處理。新建一個(gè)test.py文件,里面放兩個(gè)方式:
def request(flow):
pass
def response(flow):
pass
見(jiàn)名知意,這兩個(gè)方式,一個(gè)是在懇求的時(shí)侯執行的,一個(gè)是在響應的時(shí)侯執行,而數據包則存在于flow當中。通過(guò)flow.request.url可以獲取到懇求url,flow.request.headers可以獲取到懇求頭信息,flow.response.text中的就是響應的數據了。
def response(flow):
if str(flow.request.url).startswith("https://aweme.snssdk.com/aweme/v1/aweme/post/"):
index_response_dict = json.loads(flow.response.text)
aweme_list = index_response_dict.get('aweme_list')
if aweme_list:
for aweme in aweme_list:
print(aweme)
這個(gè)aweme就是一個(gè)完整的視頻數據了,可以按照須要提取上面的信息,這里提取部份信息做介紹。
"statistics":{
"aweme_id":"6765058962225204493",
"comment_count":24,
"digg_count":1465,
"download_count":1,
"play_count":0,
"share_count":3,
"forward_count":0,
"lose_count":0,
"lose_comment_count":0
}
statistics信息就是這個(gè)視頻的點(diǎn)贊,評論,下載,轉發(fā)的數據。
share_url為視頻的分享地址,通過(guò)這個(gè)地址,可以在PC端觀(guān)看抖音分享的視頻,也可以通過(guò)這個(gè)鏈接解析到無(wú)水印視頻。
play_addr為視頻的播放信息,其中的url_list即為無(wú)水印地址,不過(guò)目前官方做了處理,這個(gè)地址難以直接播放,也有時(shí)間限制,超時(shí)以后鏈接就失效了。
有了這個(gè)aweme,就可以把上面的信息解析下來(lái),保存到自己的數據庫,或者下載無(wú)水印視頻,保存到自己筆記本了。
寫(xiě)好代碼然后,保存test.py文件,cmd步入命令行,進(jìn)入到保存test.py文件目錄下,在命令行輸入mitmdump -s test.py,mitmdump就啟動(dòng)了,此時(shí)打開(kāi)app,開(kāi)始滑動(dòng)模擬器,進(jìn)入用戶(hù)主頁(yè):
開(kāi)始不斷下降,test.py文件就可以把抓取到的視頻數據全部解析下來(lái)了,以下是我截取的部份數據信息:
視頻信息:
視頻統計數據: 查看全部
公眾號原文鏈接:
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
這段時(shí)間仍然在處理數據采集的問(wèn)題,目前平臺數據采集趨于穩定,可以抽出時(shí)間來(lái)整理一下近日的成果,順便介紹一些近日用到的技術(shù)。本篇文章偏向技術(shù),需要讀者有一定的技術(shù)基礎,主要介紹數據采集過(guò)程中用到的利器mitmproxy,以及平臺的一些技術(shù)設計。以下是數據采集整體的設計,左邊是客戶(hù)機,在里面放置了不同的采集器,采集器發(fā)起懇求以后,通過(guò)mitmproxy訪(fǎng)問(wèn)抖音,等數據回傳以后,通過(guò)中間的解析器對數據進(jìn)行解析,最后分門(mén)別類(lèi)的儲存到數據庫中,為了提高性能,在中間加入了緩存,把采集器和解析器分隔開(kāi),兩個(gè)模塊之間工作互不影響,可以最大限度的把數據入庫,下圖為第一代構架設計,后續會(huì )有一篇文章介紹平臺構架設計的三代演化史。

準備工作
開(kāi)始步入數據采集的打算工作,第一步自然是環(huán)境搭建,本次我們在windows環(huán)境下,采用python3.6.6環(huán)境,抓包和代理工具是mitmproxy,也可以使用Fiddler抓包,采用夜神模擬器來(lái)模擬安卓運行環(huán)境(也可以用真機),這次主要通過(guò)自動(dòng)滑動(dòng)app來(lái)抓取數據,下次介紹采用Appium自動(dòng)化工具,實(shí)現數據采集的全手動(dòng)(解放右手)。
1、安裝python3.6.6環(huán)境,安裝過(guò)程可自行百度,需要注意的是,centos7自帶的是python2.7,需要升級到python3.6.6環(huán)境,升級之前主要先安裝ssl模塊,否則升級好的版本未能訪(fǎng)問(wèn)https的懇求。
2、安裝mitmproxy,安裝好python環(huán)境后,在命令行執行pip install mitmproxy安裝mitmproxy,注:windows下只有mitmdump和mitmweb可以使用,安裝好后在命令行輸入mitmdump即可啟動(dòng),默認啟動(dòng)的代理端口為8080。
3、安裝夜神模擬器,可以在官網(wǎng)下載安裝包,安裝教程自行百度即可,基本都是下一步。安裝好夜神模擬器以后,需要對夜神模擬器進(jìn)行配置。首先須要設置模擬器的網(wǎng)路為自動(dòng)代理,IP地址為windows的IP,端口為mitmproxy的代理端口。

4、接下來(lái)是證書(shū)的安裝,打開(kāi)模擬器中的瀏覽器,輸入地址mitm.it,選擇對應版本的證書(shū),安裝好后,就可以進(jìn)行抓包了。

5、安裝app,app安裝包可以到官網(wǎng)下載,然后通過(guò)拖放進(jìn)模擬器就可以安裝,或者在應用市場(chǎng)進(jìn)行安裝。
至此,本次數據采集環(huán)境就全部搭建完成。
數據插口剖析 抓包
搭建好環(huán)境以后就開(kāi)始對抖音app進(jìn)行數據抓包,分析出每位功能所使用的插口,本次以采集視頻數據插口為例介紹。
關(guān)閉之前打開(kāi)的mitmdump,重新打開(kāi)mitmweb工具,mitmweb是一個(gè)圖形化的版本,就不用對著(zhù)黑框框找了,如下圖:

啟動(dòng)以后打開(kāi)模擬器的抖音app,可以看見(jiàn)早已有數據包解析下來(lái)了,然后步入用戶(hù)主頁(yè),開(kāi)始下降視頻,在數據包列表中可以找到懇求視頻數據的插口

可以在左邊看見(jiàn)插口的懇求數據和響應數據,我們將響應數據復制下來(lái),進(jìn)入下一步解析。

數據解析
通過(guò)mitmproxy和python代碼的結合,我們就可以在代碼中獲取到mitmproxy中的數據包,進(jìn)而可以根據需求來(lái)處理。新建一個(gè)test.py文件,里面放兩個(gè)方式:
def request(flow):
pass
def response(flow):
pass
見(jiàn)名知意,這兩個(gè)方式,一個(gè)是在懇求的時(shí)侯執行的,一個(gè)是在響應的時(shí)侯執行,而數據包則存在于flow當中。通過(guò)flow.request.url可以獲取到懇求url,flow.request.headers可以獲取到懇求頭信息,flow.response.text中的就是響應的數據了。
def response(flow):
if str(flow.request.url).startswith("https://aweme.snssdk.com/aweme/v1/aweme/post/"):
index_response_dict = json.loads(flow.response.text)
aweme_list = index_response_dict.get('aweme_list')
if aweme_list:
for aweme in aweme_list:
print(aweme)
這個(gè)aweme就是一個(gè)完整的視頻數據了,可以按照須要提取上面的信息,這里提取部份信息做介紹。
"statistics":{
"aweme_id":"6765058962225204493",
"comment_count":24,
"digg_count":1465,
"download_count":1,
"play_count":0,
"share_count":3,
"forward_count":0,
"lose_count":0,
"lose_comment_count":0
}
statistics信息就是這個(gè)視頻的點(diǎn)贊,評論,下載,轉發(fā)的數據。
share_url為視頻的分享地址,通過(guò)這個(gè)地址,可以在PC端觀(guān)看抖音分享的視頻,也可以通過(guò)這個(gè)鏈接解析到無(wú)水印視頻。
play_addr為視頻的播放信息,其中的url_list即為無(wú)水印地址,不過(guò)目前官方做了處理,這個(gè)地址難以直接播放,也有時(shí)間限制,超時(shí)以后鏈接就失效了。
有了這個(gè)aweme,就可以把上面的信息解析下來(lái),保存到自己的數據庫,或者下載無(wú)水印視頻,保存到自己筆記本了。
寫(xiě)好代碼然后,保存test.py文件,cmd步入命令行,進(jìn)入到保存test.py文件目錄下,在命令行輸入mitmdump -s test.py,mitmdump就啟動(dòng)了,此時(shí)打開(kāi)app,開(kāi)始滑動(dòng)模擬器,進(jìn)入用戶(hù)主頁(yè):

開(kāi)始不斷下降,test.py文件就可以把抓取到的視頻數據全部解析下來(lái)了,以下是我截取的部份數據信息:
視頻信息:

視頻統計數據:
初探漏洞挖掘基礎
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 209 次瀏覽 ? 2020-08-09 10:11
import requests
import threading
import re
targets = []
names = []
def icp_info(host):
url = "https://icp.chinaz.com/ajaxsyn ... 5host
html = requests.get(url,timeout=(5,10)).text
pattern = re.compile('SiteName:"(.*?)",MainPage:"(.*?)"',re.S)
info = re.findall(pattern,html)
for i in range(0,32):
try:
name = info[i][0]
target = info[i][1]
print("%s:%s"%(name,target))
if target not in targets:
targets.append(target)
with open("icp_info.txt","a+") as f:
f.write("%s:%s"%(name,target) + "\n")
continue
else:
continue
except Exception as e:
continue
def start():
with open("url.txt","r+") as a:
for b in a:
b = b.strip()
icp_info(host=b)
a.close()
def main():
thread = threading.Thread(target=start,)
thread.start()
if __name__ == '__main__':
main()
先知的代碼塊可能不太友好,可以瞧瞧圖片:
使用方式:urls.txt傳入你須要查詢(xún)的網(wǎng)站,會(huì )手動(dòng)對獲取到的domain進(jìn)行去重。
使用維基百科對個(gè)別添加資產(chǎn)詞條的網(wǎng)站可以獲取到其部份資產(chǎn)信息:
但是某南沒(méi)有添加該詞條,所以獲取不到相關(guān)信息。
步驟:
先對已知網(wǎng)站進(jìn)行whois查詢(xún),我們這兒可以去微步查詢(xún)歷史whois,可以獲取到歷史的whois信息。
利用這種信息,我們就可以反查whois,獲取該注冊者/電話(huà)/郵箱下的相關(guān)域名。
我正在寫(xiě)一個(gè)腳本,即批量獲取whois->反查whois->提取關(guān)鍵信息->去重。
寫(xiě)好了我會(huì )發(fā)到github上,可關(guān)注:
我們可以直接搜索網(wǎng)站官網(wǎng),可以獲得一些頁(yè)面/頭部中富含該關(guān)鍵字的網(wǎng)站。
zoomeye:
shodan:
fofa:
此外,我們還可以借助那些搜索引擎的搜索句型來(lái)獲取資產(chǎn)。
shodan可以搜索指定公司的資產(chǎn),也可以借助特定的網(wǎng)站logo來(lái)獲取資產(chǎn)。
比如我們發(fā)覺(jué)某南的網(wǎng)站icon基本為同一個(gè),我們就可以先去搜索,獲取其帶有icon的網(wǎng)站,隨便選一個(gè)獲取hash后借助搜索句型來(lái)獲取指定icon的網(wǎng)站。
fofa可以直接借助domain關(guān)鍵字來(lái)搜索特定網(wǎng)站下的子域名:
zoomeye可以借助hostname關(guān)鍵字來(lái)獲取主機列表中的資產(chǎn):
github也可以拿來(lái)獲取資產(chǎn),但是大多數情況下還是用于獲取敏感信息(用戶(hù)名/密碼/郵箱)等。
當然也可以拿來(lái)搜索資產(chǎn):
這里推薦一款平常在用的github敏感信息采集工具:
我們可以自定義規則,來(lái)獲取自己所須要的信息。
這里還是以某南為例:
我們除了可以采集企業(yè)公眾號,還可以采集企業(yè)的小程序,因為其中大部分都是會(huì )與WEB端的插口做交互的。
公眾號:
小程序:
我們不光須要從企業(yè)網(wǎng)站中找尋該企業(yè)開(kāi)發(fā)的APP,也可以自己通過(guò)關(guān)鍵字來(lái)獲取APP,因為其中有的APP是公測的,只是上線(xiàn)了,但是還未對外公布。
以某南為例:
我們不僅直接搜索企業(yè)關(guān)鍵字外,還可以獲取其開(kāi)發(fā)者的歷史開(kāi)發(fā)記錄:
這樣循環(huán):APP->開(kāi)發(fā)者->APP
在這過(guò)程中我們常常能獲取到許多APP,后續再對其進(jìn)行相關(guān)的滲透。
我們可以使用Google/Bing/Baidu等網(wǎng)站對某個(gè)網(wǎng)站進(jìn)行資產(chǎn)采集:
當然,搭配搜索句型食用療效更佳:
之前提及了采集APP資產(chǎn),有的APP實(shí)際上并不只是使用用戶(hù)可用的那幾個(gè)插口,可能還有插口在代碼中,這時(shí)候可以用工具將這種URI提取下來(lái)。
這里推薦兩款從APK中提取有效信息的工具:
很多剛鉆洞的師父可能不太注意JS,但實(shí)際上JS中可能隱藏了很重要的插口,其中可能就存在未授權等漏洞,這里推薦同學(xué)寫(xiě)的一款從JS中提取有效域名/api的工具。
JSFINDER:
調的是LinkFinder的正則,可以循環(huán)爬取,即:
爬取domain->獲取domain主頁(yè)面下的link->獲取domain主頁(yè)面下的js->獲取link頁(yè)面下的js->解析所有js并提取出有效信息
中期
到了此步我們早已采集了企業(yè)的大部分資產(chǎn)了,剩下的就是獲取更多資產(chǎn),即子域名/IP/PORT/服務(wù)...等。
sublist3r:
這是一款很不錯的工具,調用了幾個(gè)搜索引擎以及一些子域名查詢(xún)網(wǎng)站的API,具體可以去項目頁(yè)查看。
sublist3r:
subfinder:
這款工具調用的API有很多:
Ask,Archive.is,百度,Bing,Censys,CertDB,CertSpotter,Commoncrawl,CrtSH,DnsDB,DNSDumpster,Dnstable,Dogpile,Entrust CT-Search,Exalead,FindSubdomains,GoogleTER,Hackertarget,IPv4Info,Netcraft,PassiveTotal,PTRArchive,Riddler ,SecurityTrails,SiteDossier,Shodan,ThreatCrowd,ThreatMiner,Virustotal,WaybackArchive,Yahoo
初次使用須要我們自己配置API插口的帳號/密碼/key...等。
圖片始于youtube:
subfinder:
github:
LAYER:
很早之前牧師寫(xiě)的一款工具,可以手動(dòng)過(guò)濾泛解析的域名,字典+API的形式來(lái)采集資產(chǎn),當然更多的是字典,速度也相當可觀(guān):
altdns:
這款工具我通常是到最后采集完了所以子域名并去重后使用的,他可以幫助我們發(fā)覺(jué)一些二級/三級非常隱蔽的域名。
以vivo舉例:
altdns:
關(guān)于企業(yè)IP的采集我們可以直接寫(xiě)腳本去調ip138的插口,可以獲取到當前解析IP和歷史解析IP,還是比較全的。
ip138:
獲取完企業(yè)的IP范圍以后,我們就可以用nmap/masscan等工具對其端口/服務(wù)進(jìn)行掃描,這個(gè)過(guò)程可能會(huì )有點(diǎn)久。
我們須要先判別企業(yè)是直接買(mǎi)了一個(gè)C段的IP,還是只使用一個(gè)IP,再選擇掃描整個(gè)C段或則是單個(gè)IP。
這是我之前使用nmap對某東域名批量進(jìn)行C段掃描的結果:
我們的注意力可以置于幾個(gè)WEB服務(wù)端口,和一些可能存在漏洞的服務(wù)端口,如redis/mongodb等。
至此,資產(chǎn)采集基本早已結束了,我們可以將采集到的資產(chǎn)選擇性的入庫,這樣以后獲取新資產(chǎn)時(shí)就可以對比一下是否存在。
后期
這部份可能是我寫(xiě)的最少的部份。
獲取完資產(chǎn)然后,就是苦力活了,我的步驟是,先把獲取到的資產(chǎn)丟到掃描器(awvs/nessus)里先掃一遍,避免一些沒(méi)必要的體力勞動(dòng)。
nessus主要拿來(lái)掃描端口服務(wù)的漏洞以及一些系統CVE,awvs主要拿來(lái)掃描WEB端的漏洞,如XSS/SQLI/CSRF/CORS/備份文件...等等。
指紋辨識部份可以使用云悉的,可以自己寫(xiě)個(gè)插件之后申請個(gè)API:
我都會(huì )用BBSCAN/weakfilescan來(lái)掃描網(wǎng)站中可能存在的敏感信息,如.git/.svn/備份文件等等。
BBSCAN:
weakfilescan:
之后的基本就是自動(dòng)勞動(dòng)了,對獲取到的資產(chǎn)借助已有知識一個(gè)個(gè)的測。 查看全部
單線(xiàn)程:
import requests
import threading
import re
targets = []
names = []
def icp_info(host):
url = "https://icp.chinaz.com/ajaxsyn ... 5host
html = requests.get(url,timeout=(5,10)).text
pattern = re.compile('SiteName:"(.*?)",MainPage:"(.*?)"',re.S)
info = re.findall(pattern,html)
for i in range(0,32):
try:
name = info[i][0]
target = info[i][1]
print("%s:%s"%(name,target))
if target not in targets:
targets.append(target)
with open("icp_info.txt","a+") as f:
f.write("%s:%s"%(name,target) + "\n")
continue
else:
continue
except Exception as e:
continue
def start():
with open("url.txt","r+") as a:
for b in a:
b = b.strip()
icp_info(host=b)
a.close()
def main():
thread = threading.Thread(target=start,)
thread.start()
if __name__ == '__main__':
main()
先知的代碼塊可能不太友好,可以瞧瞧圖片:

使用方式:urls.txt傳入你須要查詢(xún)的網(wǎng)站,會(huì )手動(dòng)對獲取到的domain進(jìn)行去重。
使用維基百科對個(gè)別添加資產(chǎn)詞條的網(wǎng)站可以獲取到其部份資產(chǎn)信息:

但是某南沒(méi)有添加該詞條,所以獲取不到相關(guān)信息。
步驟:
先對已知網(wǎng)站進(jìn)行whois查詢(xún),我們這兒可以去微步查詢(xún)歷史whois,可以獲取到歷史的whois信息。

利用這種信息,我們就可以反查whois,獲取該注冊者/電話(huà)/郵箱下的相關(guān)域名。

我正在寫(xiě)一個(gè)腳本,即批量獲取whois->反查whois->提取關(guān)鍵信息->去重。
寫(xiě)好了我會(huì )發(fā)到github上,可關(guān)注:
我們可以直接搜索網(wǎng)站官網(wǎng),可以獲得一些頁(yè)面/頭部中富含該關(guān)鍵字的網(wǎng)站。
zoomeye:

shodan:

fofa:

此外,我們還可以借助那些搜索引擎的搜索句型來(lái)獲取資產(chǎn)。
shodan可以搜索指定公司的資產(chǎn),也可以借助特定的網(wǎng)站logo來(lái)獲取資產(chǎn)。
比如我們發(fā)覺(jué)某南的網(wǎng)站icon基本為同一個(gè),我們就可以先去搜索,獲取其帶有icon的網(wǎng)站,隨便選一個(gè)獲取hash后借助搜索句型來(lái)獲取指定icon的網(wǎng)站。

fofa可以直接借助domain關(guān)鍵字來(lái)搜索特定網(wǎng)站下的子域名:

zoomeye可以借助hostname關(guān)鍵字來(lái)獲取主機列表中的資產(chǎn):

github也可以拿來(lái)獲取資產(chǎn),但是大多數情況下還是用于獲取敏感信息(用戶(hù)名/密碼/郵箱)等。
當然也可以拿來(lái)搜索資產(chǎn):

這里推薦一款平常在用的github敏感信息采集工具:
我們可以自定義規則,來(lái)獲取自己所須要的信息。
這里還是以某南為例:
我們除了可以采集企業(yè)公眾號,還可以采集企業(yè)的小程序,因為其中大部分都是會(huì )與WEB端的插口做交互的。
公眾號:

小程序:

我們不光須要從企業(yè)網(wǎng)站中找尋該企業(yè)開(kāi)發(fā)的APP,也可以自己通過(guò)關(guān)鍵字來(lái)獲取APP,因為其中有的APP是公測的,只是上線(xiàn)了,但是還未對外公布。
以某南為例:


我們不僅直接搜索企業(yè)關(guān)鍵字外,還可以獲取其開(kāi)發(fā)者的歷史開(kāi)發(fā)記錄:

這樣循環(huán):APP->開(kāi)發(fā)者->APP
在這過(guò)程中我們常常能獲取到許多APP,后續再對其進(jìn)行相關(guān)的滲透。
我們可以使用Google/Bing/Baidu等網(wǎng)站對某個(gè)網(wǎng)站進(jìn)行資產(chǎn)采集:

當然,搭配搜索句型食用療效更佳:

之前提及了采集APP資產(chǎn),有的APP實(shí)際上并不只是使用用戶(hù)可用的那幾個(gè)插口,可能還有插口在代碼中,這時(shí)候可以用工具將這種URI提取下來(lái)。

這里推薦兩款從APK中提取有效信息的工具:
很多剛鉆洞的師父可能不太注意JS,但實(shí)際上JS中可能隱藏了很重要的插口,其中可能就存在未授權等漏洞,這里推薦同學(xué)寫(xiě)的一款從JS中提取有效域名/api的工具。
JSFINDER:
調的是LinkFinder的正則,可以循環(huán)爬取,即:
爬取domain->獲取domain主頁(yè)面下的link->獲取domain主頁(yè)面下的js->獲取link頁(yè)面下的js->解析所有js并提取出有效信息
中期
到了此步我們早已采集了企業(yè)的大部分資產(chǎn)了,剩下的就是獲取更多資產(chǎn),即子域名/IP/PORT/服務(wù)...等。
sublist3r:
這是一款很不錯的工具,調用了幾個(gè)搜索引擎以及一些子域名查詢(xún)網(wǎng)站的API,具體可以去項目頁(yè)查看。

sublist3r:
subfinder:
這款工具調用的API有很多:
Ask,Archive.is,百度,Bing,Censys,CertDB,CertSpotter,Commoncrawl,CrtSH,DnsDB,DNSDumpster,Dnstable,Dogpile,Entrust CT-Search,Exalead,FindSubdomains,GoogleTER,Hackertarget,IPv4Info,Netcraft,PassiveTotal,PTRArchive,Riddler ,SecurityTrails,SiteDossier,Shodan,ThreatCrowd,ThreatMiner,Virustotal,WaybackArchive,Yahoo
初次使用須要我們自己配置API插口的帳號/密碼/key...等。
圖片始于youtube:

subfinder:
github:
LAYER:
很早之前牧師寫(xiě)的一款工具,可以手動(dòng)過(guò)濾泛解析的域名,字典+API的形式來(lái)采集資產(chǎn),當然更多的是字典,速度也相當可觀(guān):

altdns:
這款工具我通常是到最后采集完了所以子域名并去重后使用的,他可以幫助我們發(fā)覺(jué)一些二級/三級非常隱蔽的域名。

以vivo舉例:

altdns:
關(guān)于企業(yè)IP的采集我們可以直接寫(xiě)腳本去調ip138的插口,可以獲取到當前解析IP和歷史解析IP,還是比較全的。
ip138:

獲取完企業(yè)的IP范圍以后,我們就可以用nmap/masscan等工具對其端口/服務(wù)進(jìn)行掃描,這個(gè)過(guò)程可能會(huì )有點(diǎn)久。
我們須要先判別企業(yè)是直接買(mǎi)了一個(gè)C段的IP,還是只使用一個(gè)IP,再選擇掃描整個(gè)C段或則是單個(gè)IP。
這是我之前使用nmap對某東域名批量進(jìn)行C段掃描的結果:

我們的注意力可以置于幾個(gè)WEB服務(wù)端口,和一些可能存在漏洞的服務(wù)端口,如redis/mongodb等。
至此,資產(chǎn)采集基本早已結束了,我們可以將采集到的資產(chǎn)選擇性的入庫,這樣以后獲取新資產(chǎn)時(shí)就可以對比一下是否存在。
后期
這部份可能是我寫(xiě)的最少的部份。
獲取完資產(chǎn)然后,就是苦力活了,我的步驟是,先把獲取到的資產(chǎn)丟到掃描器(awvs/nessus)里先掃一遍,避免一些沒(méi)必要的體力勞動(dòng)。
nessus主要拿來(lái)掃描端口服務(wù)的漏洞以及一些系統CVE,awvs主要拿來(lái)掃描WEB端的漏洞,如XSS/SQLI/CSRF/CORS/備份文件...等等。
指紋辨識部份可以使用云悉的,可以自己寫(xiě)個(gè)插件之后申請個(gè)API:

我都會(huì )用BBSCAN/weakfilescan來(lái)掃描網(wǎng)站中可能存在的敏感信息,如.git/.svn/備份文件等等。
BBSCAN:
weakfilescan:
之后的基本就是自動(dòng)勞動(dòng)了,對獲取到的資產(chǎn)借助已有知識一個(gè)個(gè)的測。
解決文本分類(lèi)問(wèn)題的一些機器學(xué)習最佳實(shí)踐
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2020-08-08 11:13
建立和訓練模型只是整個(gè)過(guò)程的一部分. 如果您能夠提前了解數據特征,那么對于后續的模型構建(例如更高的準確性,更少的數據和更少的計算資源)將大有裨益.
加載數據集
首先,讓我們將數據集加載到Python中:
def load_imdb_sentiment_analysis_dataset(data_path,seed = 123):
“”“加載IMDb電影評論情感分析數據集.
#個(gè)參數
data_path: 字符串,數據目錄的路徑.
seed: int,隨機數的種子.
#返回
一組訓練和驗證數據.
培訓樣本數量: 25000
測試樣本數: 25000
類(lèi)別數: 2(0負,1負)
#個(gè)引用
Mass等,
從以下位置下載并解壓縮歸檔文件:
?amaas / data / sentiment / aclImdb_v1.tar.gz
“”“
imdb_data_path = os.path.join(data_path,'aclImdb')
#加載訓練數據
train_texts = []
train_labels = []
對于['pos','neg']中的類(lèi)別:
train_path = os.path.join(imdb_data_path,'train',類(lèi)別)
對于已排序的(os.listdir(train_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(train_path,fname))作為f:
train_texts.append(f.read())
train_labels.append(0if category =='neg'else1)
#加載驗證數據.
test_texts = []
test_labels = []
對于['pos','neg']中的類(lèi)別:
test_path = os.path.join(imdb_data_path,'test',category)
對于已排序的(os.listdir(test_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(test_path,fname))作為f:
test_texts.append(f.read())
test_labels.append(0if category =='neg'else1)
#隨機排列訓練數據和標簽.
random.seed(種子)
random.shuffle(train_texts)
random.seed(種子)
random.shuffle(train_labels)
返回((train_texts,np.array(train_labels)),
?。╰est_texts,np.array(test_labels)))
檢查數據
加載數據后,最好一一檢查它們: 選擇一些樣本并手動(dòng)檢查它們是否符合您的期望. 例如,對于示例中使用的電影評論數據集,我們可以輸出一些隨機樣本來(lái)檢查評論中的情感標簽和情感是否一致.
“一個(gè)十分鐘的故事必須講兩個(gè)小時(shí). 如果沒(méi)什么大不了的話(huà),我會(huì )起身離開(kāi)的. ”
這是在數據集中標記為“否定”的注釋. 顯然,審閱者認為這部電影很拖拉,很無(wú)聊,與標簽相符.
采集關(guān)鍵指標
完成檢查后,您需要采集以下重要指標,這些指標可以幫助表征文本分類(lèi)任務(wù):
樣本數: 數據集中的樣本總數.
類(lèi)別數: 數據集中的主題或類(lèi)別數.
每個(gè)類(lèi)別中的樣本數: 如果是平衡數據集,則所有類(lèi)別應收錄相似數目的樣本;如果它是不平衡的數據集,則每個(gè)類(lèi)別中收錄的樣本數量將有很大的差異.
每個(gè)樣本中的單詞數: 這是一個(gè)文本分類(lèi)問(wèn)題,因此應計算樣本中收錄的單詞中位數.
單詞頻率分布: 數據集中每個(gè)單詞的頻率(出現次數).
樣本長(cháng)度分布: 數據集中每個(gè)樣本的分布
步驟2.5: 選擇模型
到目前為止,我們已經(jīng)對數據進(jìn)行了匯總,并且對數據的關(guān)鍵特征也有了深入的了解. 接下來(lái),基于第二步中采集的各種指標,我們將開(kāi)始考慮應使用哪種分類(lèi)模型. 這也意味著(zhù)我們將提出以下問(wèn)題: “如何將文本數據轉換為算法輸入?” (數據預處理和矢量化),“我們應該使用哪種類(lèi)型的模型?”,“我們的模型應該可行的是什么參數配置?”……
由于數十年的研究,數據預處理和模型配置的選項現在非常多樣化,但實(shí)際上有很多選項帶來(lái)了很多麻煩. 我們手頭只有一個(gè)特定的問(wèn)題,它的范圍也很廣泛,那么如何選擇最好的呢?最誠實(shí)的方法是一個(gè)接一個(gè)地嘗試過(guò)去,消除弊端,留下最好的方法,但是這種方法是不現實(shí)的.
在本文中,我們嘗試簡(jiǎn)化選擇文本分類(lèi)模型的過(guò)程. 對于給定的數據集,我們的目標只有兩個(gè): 準確性接近最高,而訓練時(shí)間則是最低的. 我們使用總共12個(gè)數據集,針對不同類(lèi)型的問(wèn)題(尤其是情感分析和主題分類(lèi)問(wèn)題)進(jìn)行了大量(?450K)實(shí)驗,交替測試了不同的數據預處理技術(shù)和不同的模型架構. 這個(gè)過(guò)程有助于我們獲得影響優(yōu)化的各種參數.
下面的模型選擇和流程圖是上述實(shí)驗的總結.
數據準備和模型算法構建
計算比率: 樣本數/每個(gè)樣本的平均單詞數
如果上述比率小于1500,請對文本進(jìn)行分段,然后使用簡(jiǎn)單的多層感知器(MLP)模型對其進(jìn)行分類(lèi)(下圖的左分支)
a. 使用n-gram模型對句子進(jìn)行分段并將單詞轉換為單詞向量
b. 根據向量的重要性得分,從向量中提取出前20,000個(gè)單詞
c. 建立MLP模型
如果上述比率大于1500,則將文本標記為序列,并使用sepCNN模型對其進(jìn)行分類(lèi)(下圖的右分支)
a. 對樣本進(jìn)行分詞,然后根據詞頻選擇前20,000個(gè)詞
b. 將樣本轉換為單詞序列向量
c. 如果比率小于1500,使用預訓練的sepCNN模型進(jìn)行詞嵌入,效果可能很好.
調整超參數以找到模型的最佳參數配置
在下面的流程圖中,黃色框代表數據和模型的準備階段,灰色框和綠色框代表過(guò)程中的每個(gè)選擇,綠色框代表“推薦選擇”. 您可以將此圖片用作構建第一個(gè)實(shí)驗模型的起點(diǎn),因為它可以以較低的計算成本提供更好的性能. 如有必要,您可以在此基礎上繼續進(jìn)行迭代改進(jìn).
文本分類(lèi)流程圖
此流程圖回答了兩個(gè)關(guān)鍵問(wèn)題:
我們應該使用哪種學(xué)習算法或模型?
我們應該如何準備數據以有效地學(xué)習文本和標簽之間的關(guān)系?
其中,第二個(gè)問(wèn)題取決于第一個(gè)問(wèn)題的答案,而我們預處理數據的方式取決于所選的特定模型. 文本分類(lèi)模型可以大致分為兩類(lèi): 使用單詞排名信息的序列模型和將文本視為一組單詞的n-gram模型. 序列模型的類(lèi)型包括卷積神經(jīng)網(wǎng)絡(luò )(CNN),遞歸神經(jīng)網(wǎng)絡(luò )(RNN)及其變體. n元語(yǔ)法模型的類(lèi)型包括邏輯回歸,MLP,DBDT和SVM.
對于電影評論數據集,樣本數/每個(gè)樣本的平均單詞數約為144,因此我們將建立一個(gè)MLP模型. 查看全部
第2步: 瀏覽數據
建立和訓練模型只是整個(gè)過(guò)程的一部分. 如果您能夠提前了解數據特征,那么對于后續的模型構建(例如更高的準確性,更少的數據和更少的計算資源)將大有裨益.
加載數據集
首先,讓我們將數據集加載到Python中:
def load_imdb_sentiment_analysis_dataset(data_path,seed = 123):
“”“加載IMDb電影評論情感分析數據集.
#個(gè)參數
data_path: 字符串,數據目錄的路徑.
seed: int,隨機數的種子.
#返回
一組訓練和驗證數據.
培訓樣本數量: 25000
測試樣本數: 25000
類(lèi)別數: 2(0負,1負)
#個(gè)引用
Mass等,
從以下位置下載并解壓縮歸檔文件:
?amaas / data / sentiment / aclImdb_v1.tar.gz
“”“
imdb_data_path = os.path.join(data_path,'aclImdb')
#加載訓練數據
train_texts = []
train_labels = []
對于['pos','neg']中的類(lèi)別:
train_path = os.path.join(imdb_data_path,'train',類(lèi)別)
對于已排序的(os.listdir(train_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(train_path,fname))作為f:
train_texts.append(f.read())
train_labels.append(0if category =='neg'else1)
#加載驗證數據.
test_texts = []
test_labels = []
對于['pos','neg']中的類(lèi)別:
test_path = os.path.join(imdb_data_path,'test',category)
對于已排序的(os.listdir(test_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(test_path,fname))作為f:
test_texts.append(f.read())
test_labels.append(0if category =='neg'else1)
#隨機排列訓練數據和標簽.
random.seed(種子)
random.shuffle(train_texts)
random.seed(種子)
random.shuffle(train_labels)
返回((train_texts,np.array(train_labels)),
?。╰est_texts,np.array(test_labels)))
檢查數據
加載數據后,最好一一檢查它們: 選擇一些樣本并手動(dòng)檢查它們是否符合您的期望. 例如,對于示例中使用的電影評論數據集,我們可以輸出一些隨機樣本來(lái)檢查評論中的情感標簽和情感是否一致.
“一個(gè)十分鐘的故事必須講兩個(gè)小時(shí). 如果沒(méi)什么大不了的話(huà),我會(huì )起身離開(kāi)的. ”
這是在數據集中標記為“否定”的注釋. 顯然,審閱者認為這部電影很拖拉,很無(wú)聊,與標簽相符.
采集關(guān)鍵指標
完成檢查后,您需要采集以下重要指標,這些指標可以幫助表征文本分類(lèi)任務(wù):
樣本數: 數據集中的樣本總數.
類(lèi)別數: 數據集中的主題或類(lèi)別數.
每個(gè)類(lèi)別中的樣本數: 如果是平衡數據集,則所有類(lèi)別應收錄相似數目的樣本;如果它是不平衡的數據集,則每個(gè)類(lèi)別中收錄的樣本數量將有很大的差異.
每個(gè)樣本中的單詞數: 這是一個(gè)文本分類(lèi)問(wèn)題,因此應計算樣本中收錄的單詞中位數.
單詞頻率分布: 數據集中每個(gè)單詞的頻率(出現次數).
樣本長(cháng)度分布: 數據集中每個(gè)樣本的分布
步驟2.5: 選擇模型
到目前為止,我們已經(jīng)對數據進(jìn)行了匯總,并且對數據的關(guān)鍵特征也有了深入的了解. 接下來(lái),基于第二步中采集的各種指標,我們將開(kāi)始考慮應使用哪種分類(lèi)模型. 這也意味著(zhù)我們將提出以下問(wèn)題: “如何將文本數據轉換為算法輸入?” (數據預處理和矢量化),“我們應該使用哪種類(lèi)型的模型?”,“我們的模型應該可行的是什么參數配置?”……
由于數十年的研究,數據預處理和模型配置的選項現在非常多樣化,但實(shí)際上有很多選項帶來(lái)了很多麻煩. 我們手頭只有一個(gè)特定的問(wèn)題,它的范圍也很廣泛,那么如何選擇最好的呢?最誠實(shí)的方法是一個(gè)接一個(gè)地嘗試過(guò)去,消除弊端,留下最好的方法,但是這種方法是不現實(shí)的.
在本文中,我們嘗試簡(jiǎn)化選擇文本分類(lèi)模型的過(guò)程. 對于給定的數據集,我們的目標只有兩個(gè): 準確性接近最高,而訓練時(shí)間則是最低的. 我們使用總共12個(gè)數據集,針對不同類(lèi)型的問(wèn)題(尤其是情感分析和主題分類(lèi)問(wèn)題)進(jìn)行了大量(?450K)實(shí)驗,交替測試了不同的數據預處理技術(shù)和不同的模型架構. 這個(gè)過(guò)程有助于我們獲得影響優(yōu)化的各種參數.
下面的模型選擇和流程圖是上述實(shí)驗的總結.
數據準備和模型算法構建
計算比率: 樣本數/每個(gè)樣本的平均單詞數
如果上述比率小于1500,請對文本進(jìn)行分段,然后使用簡(jiǎn)單的多層感知器(MLP)模型對其進(jìn)行分類(lèi)(下圖的左分支)
a. 使用n-gram模型對句子進(jìn)行分段并將單詞轉換為單詞向量
b. 根據向量的重要性得分,從向量中提取出前20,000個(gè)單詞
c. 建立MLP模型
如果上述比率大于1500,則將文本標記為序列,并使用sepCNN模型對其進(jìn)行分類(lèi)(下圖的右分支)
a. 對樣本進(jìn)行分詞,然后根據詞頻選擇前20,000個(gè)詞
b. 將樣本轉換為單詞序列向量
c. 如果比率小于1500,使用預訓練的sepCNN模型進(jìn)行詞嵌入,效果可能很好.
調整超參數以找到模型的最佳參數配置
在下面的流程圖中,黃色框代表數據和模型的準備階段,灰色框和綠色框代表過(guò)程中的每個(gè)選擇,綠色框代表“推薦選擇”. 您可以將此圖片用作構建第一個(gè)實(shí)驗模型的起點(diǎn),因為它可以以較低的計算成本提供更好的性能. 如有必要,您可以在此基礎上繼續進(jìn)行迭代改進(jìn).

文本分類(lèi)流程圖
此流程圖回答了兩個(gè)關(guān)鍵問(wèn)題:
我們應該使用哪種學(xué)習算法或模型?
我們應該如何準備數據以有效地學(xué)習文本和標簽之間的關(guān)系?
其中,第二個(gè)問(wèn)題取決于第一個(gè)問(wèn)題的答案,而我們預處理數據的方式取決于所選的特定模型. 文本分類(lèi)模型可以大致分為兩類(lèi): 使用單詞排名信息的序列模型和將文本視為一組單詞的n-gram模型. 序列模型的類(lèi)型包括卷積神經(jīng)網(wǎng)絡(luò )(CNN),遞歸神經(jīng)網(wǎng)絡(luò )(RNN)及其變體. n元語(yǔ)法模型的類(lèi)型包括邏輯回歸,MLP,DBDT和SVM.
對于電影評論數據集,樣本數/每個(gè)樣本的平均單詞數約為144,因此我們將建立一個(gè)MLP模型.
如何在官方帳戶(hù)上優(yōu)雅地贏(yíng)得歷史文章,喜歡,閱讀甚至評論?
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2020-08-08 10:37
也許像新邦和青博這樣的著(zhù)名平臺都提供了這樣的數據,但是價(jià)格太高了. 例如,如果要在新列表中獲得《人民日報》的所有歷史文章,則需要300個(gè)List Bean,它的價(jià)格是多少? 285元! ! !
新列表從官方帳戶(hù)中采集歷史文章
托收價(jià)格
我認為這筆費用不是大多數自媒體工作者負擔得起的,包括我曾考慮過(guò)購買(mǎi)這種服務(wù)的費用,但最終停止了. 作為開(kāi)發(fā)人員,這些問(wèn)題可以自己解決,不要浪費,因此我決定開(kāi)發(fā)像我這樣的工具,該工具可以幫助需要快速獲取官方帳戶(hù)的歷史商品數據以實(shí)現其目標的像我這樣的人更方便和經(jīng)濟,所以我有目前的公眾. 文章助手
小蜜蜂公共帳戶(hù)文章助理
助手實(shí)現的功能
輔助界面
鏈接模式
代理模式
鏈接模式是最簡(jiǎn)單的. 您只需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式需要幾分鐘的時(shí)間設置,設置完成后即可開(kāi)始采集
image.png
官方帳戶(hù)列表
采集結果列表
采集成功后,您可以在官方帳戶(hù)列表中查看采集結果,可以查看文章數量,名稱(chēng)以及一些導出文檔的操作 查看全部
我相信許多運營(yíng)工人在日常工作中會(huì )遇到這種需求,并且經(jīng)常需要研究競爭對手的官方帳戶(hù)商品數據或他們自己的官方帳戶(hù)數據. 但是,微信官方平臺無(wú)法提供如此便捷的操作. 支持導出官方帳戶(hù)數據以供研究.
也許像新邦和青博這樣的著(zhù)名平臺都提供了這樣的數據,但是價(jià)格太高了. 例如,如果要在新列表中獲得《人民日報》的所有歷史文章,則需要300個(gè)List Bean,它的價(jià)格是多少? 285元! ! !

新列表從官方帳戶(hù)中采集歷史文章

托收價(jià)格
我認為這筆費用不是大多數自媒體工作者負擔得起的,包括我曾考慮過(guò)購買(mǎi)這種服務(wù)的費用,但最終停止了. 作為開(kāi)發(fā)人員,這些問(wèn)題可以自己解決,不要浪費,因此我決定開(kāi)發(fā)像我這樣的工具,該工具可以幫助需要快速獲取官方帳戶(hù)的歷史商品數據以實(shí)現其目標的像我這樣的人更方便和經(jīng)濟,所以我有目前的公眾. 文章助手

小蜜蜂公共帳戶(hù)文章助理
助手實(shí)現的功能
輔助界面

鏈接模式

代理模式
鏈接模式是最簡(jiǎn)單的. 您只需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式需要幾分鐘的時(shí)間設置,設置完成后即可開(kāi)始采集

image.png
官方帳戶(hù)列表

采集結果列表
采集成功后,您可以在官方帳戶(hù)列表中查看采集結果,可以查看文章數量,名稱(chēng)以及一些導出文檔的操作
java/python中文分信息處理工具,沒(méi)有計算機知識的人
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 237 次瀏覽 ? 2020-08-08 09:15
1. 敏感性分析的目的是:
?。?)識別影響項目經(jīng)濟效益變化的敏感因素,分析敏感因素變化的原因,為進(jìn)一步的不確定性分析(如概率分析)提供依據;
?。?)研究不確定因素的變化范圍或極限值,例如項目的經(jīng)濟效益值的變化,并分析和判斷項目的承受風(fēng)險的能力;
?。?)比較多種選擇的敏感性,以便在經(jīng)濟利益相似的情況下,可以選擇不敏感的投資選擇.
根據每個(gè)不確定因素的變化數量,靈敏度分析可以分為單因素靈敏度分析和多因素靈敏度分析.
第二,敏感性分析的步驟
對于敏感性分析,通常請按照以下步驟操作:
1. 確定經(jīng)濟效益指標進(jìn)行分析
評價(jià)投資項目的經(jīng)濟效益指標主要包括: 凈現值,內部收益率,投資利潤率,投資回收期等.
2. 選擇不確定因素并設置變化范圍.
3. 計算不確定因素變化對項目經(jīng)濟績(jì)效指標的影響程度,并確定敏感因素.
4. 繪制靈敏度分析圖以找到不確定性因素變化的極限值.
敏感性分析是一種動(dòng)態(tài)不確定性分析,是項目評估中不可或缺的一部分. 用于分析項目經(jīng)濟效益指標對各種不確定因素的敏感性,找出敏感性因素及其最大波動(dòng)范圍,并據此判斷項目的承受風(fēng)險能力. 但是,該分析仍無(wú)法確定各種不確定因素在一定范圍內的概率,因此其分析結論的準確性將在一定程度上受到影響. 在現實(shí)生活中,可能會(huì )出現這樣的情況: 通過(guò)敏感性分析確定的敏感性因素未來(lái)不太可能發(fā)生不利變化,并且由此引發(fā)的項目風(fēng)險不大;雖然在敏感性分析中執行的另一個(gè)因素不是很敏感,但是將來(lái)發(fā)生不利變化的可能性非常高,這將導致更大的項目風(fēng)險. 為了彌補敏感性分析的不足,在項目評估和決策過(guò)程中需要進(jìn)一步的概率分析.
數據分析具有廣泛的應用范圍. 在產(chǎn)品的整個(gè)生命周期中,數據分析過(guò)程是質(zhì)量管理體系的支持過(guò)程,包括從產(chǎn)品市場(chǎng)研究到售后服務(wù)到最終處置的整個(gè)過(guò)程. 需要適當地使用數據分析來(lái)提高有效性. 國內有很多大數據分析和挖掘工具,但是其中大多數是近年來(lái)出現的大數據技術(shù),它們必須具有計算機開(kāi)發(fā)能力,并且可以立即使用. 多功能工具較少. 作為主流中文大數據分析和挖掘工具產(chǎn)品的試用版,以下推薦了一個(gè)java / python中文子信息處理工具,該工具可以在沒(méi)有計算機知識的情況下直接使用:
NLPIR大數據語(yǔ)義智能分析平臺(以前稱(chēng)為ICTCLAS)是由北京理工大學(xué)大數據搜索與挖掘實(shí)驗室主任張華平開(kāi)發(fā)的. 它滿(mǎn)足了大數據內容采集,編譯和搜索的全面需求. 它結合了精確的網(wǎng)絡(luò )采集,對自然語(yǔ)言的理解,文本挖掘和語(yǔ)義搜索的最新研究成果近二十年來(lái)不斷創(chuàng )新. 該平臺提供了多種產(chǎn)品使用形式,例如客戶(hù)端工具,云服務(wù)和二次開(kāi)發(fā)接口. 每個(gè)中間件API均可無(wú)縫集成到客戶(hù)的各種復雜應用系統中,與Windows,Linux,Android,Maemo5,FreeBSD等不同操作系統平臺兼容,并可用于Java,Python,C等各種開(kāi)發(fā),C#等語(yǔ)言用法.
NLPIR大數據語(yǔ)義智能分析平臺的十三個(gè)功能:
NLPIR大數據語(yǔ)義智能分析平臺客戶(hù)端
精確采集: 通過(guò)兩種方式實(shí)時(shí)準確地從國內外Internet上采集大量信息: 主題采集(根據信息需求進(jìn)行主題采集)和網(wǎng)站采集(給定的內部定點(diǎn)采集功能)網(wǎng)址列表).
文檔轉換: 將文本信息轉換為doc,excel,pdf和ppt等多種主流文檔格式,其效率可以滿(mǎn)足大數據處理的要求.
新詞發(fā)現: 從文本中發(fā)現新詞和概念,用戶(hù)可以將其用于專(zhuān)業(yè)詞典的匯編,還可以進(jìn)一步對其進(jìn)行編輯和標記,將其導入分詞詞典中,從而提高了詞的準確性. 分詞系統,并適應新的語(yǔ)言多樣性.
批處理單詞分割: 原創(chuàng )語(yǔ)料庫的單詞分割,自動(dòng)識別未注冊的單詞(例如名稱(chēng),地名和機構名稱(chēng)),新單詞標記和詞性標記. 然后在分析過(guò)程中,導入用戶(hù)定義的字典.
語(yǔ)言統計: 根據分段和標注的結果,系統可以自動(dòng)對一元詞的頻率進(jìn)行統計,并對二元詞的轉移概率進(jìn)行統計. 對于常用術(shù)語(yǔ),將自動(dòng)給出相應的英語(yǔ)解釋.
文本聚類(lèi): 它可以自動(dòng)分析來(lái)自大規模數據的熱點(diǎn)事件,并提供事件主題的關(guān)鍵功能描述. 它還適用于長(cháng)文本和短文本(例如,短文本和微博)的熱點(diǎn)分析.
文本分類(lèi): 根據規則或培訓方法對大量文本進(jìn)行分類(lèi),可用于新聞分類(lèi),簡(jiǎn)歷分類(lèi),郵件分類(lèi),辦公文檔分類(lèi),區域分類(lèi)等許多方面.
摘要實(shí)體: 對于單篇或多篇文章,將自動(dòng)提取內容摘要,并提取人員名稱(chēng),地點(diǎn),組織,時(shí)間和主題關(guān)鍵字;方便用戶(hù)快速瀏覽文本內容.
智能過(guò)濾: 語(yǔ)義智能過(guò)濾和文本內容審查,內置中國最完整的單詞數據庫,智能識別變形,語(yǔ)音,傳統和簡(jiǎn)體等多種變體,并在語(yǔ)義上準確消除歧義.
情感分析: 對于預先指定的分析對象,系統會(huì )自動(dòng)分析大量文檔的情感趨勢: 情感極性和情感價(jià)值測量,并在原文中給出正負分數和句子示例.
重復數據刪除: 快速,準確地確定文件集合或數據庫中是否存在具有相同或相似內容的記錄,同時(shí)查找所有重復記錄.
全文搜索: 支持各種數據類(lèi)型,例如文本,數字,日期,字符串等,多字段有效搜索,支持查詢(xún)語(yǔ)法(例如AND / OR / NOT和NEAR接近),并支持維吾爾文,藏文,蒙古語(yǔ),阿拉伯語(yǔ),韓語(yǔ)和其他少數民族語(yǔ)言的搜索.
編碼轉換: 自動(dòng)識別內容的編碼,并將編碼統一轉換為其他編碼. 查看全部
敏感性分析是指從眾多不確定因素中找出對投資項目的經(jīng)濟績(jì)效指標有重要影響的敏感因素,并分析計算對項目經(jīng)濟績(jì)效指標的影響程度和敏感性,然后是用于確定項目風(fēng)險承受能力的不確定性分析方法.
1. 敏感性分析的目的是:
?。?)識別影響項目經(jīng)濟效益變化的敏感因素,分析敏感因素變化的原因,為進(jìn)一步的不確定性分析(如概率分析)提供依據;
?。?)研究不確定因素的變化范圍或極限值,例如項目的經(jīng)濟效益值的變化,并分析和判斷項目的承受風(fēng)險的能力;
?。?)比較多種選擇的敏感性,以便在經(jīng)濟利益相似的情況下,可以選擇不敏感的投資選擇.
根據每個(gè)不確定因素的變化數量,靈敏度分析可以分為單因素靈敏度分析和多因素靈敏度分析.
第二,敏感性分析的步驟
對于敏感性分析,通常請按照以下步驟操作:
1. 確定經(jīng)濟效益指標進(jìn)行分析
評價(jià)投資項目的經(jīng)濟效益指標主要包括: 凈現值,內部收益率,投資利潤率,投資回收期等.
2. 選擇不確定因素并設置變化范圍.
3. 計算不確定因素變化對項目經(jīng)濟績(jì)效指標的影響程度,并確定敏感因素.
4. 繪制靈敏度分析圖以找到不確定性因素變化的極限值.
敏感性分析是一種動(dòng)態(tài)不確定性分析,是項目評估中不可或缺的一部分. 用于分析項目經(jīng)濟效益指標對各種不確定因素的敏感性,找出敏感性因素及其最大波動(dòng)范圍,并據此判斷項目的承受風(fēng)險能力. 但是,該分析仍無(wú)法確定各種不確定因素在一定范圍內的概率,因此其分析結論的準確性將在一定程度上受到影響. 在現實(shí)生活中,可能會(huì )出現這樣的情況: 通過(guò)敏感性分析確定的敏感性因素未來(lái)不太可能發(fā)生不利變化,并且由此引發(fā)的項目風(fēng)險不大;雖然在敏感性分析中執行的另一個(gè)因素不是很敏感,但是將來(lái)發(fā)生不利變化的可能性非常高,這將導致更大的項目風(fēng)險. 為了彌補敏感性分析的不足,在項目評估和決策過(guò)程中需要進(jìn)一步的概率分析.
數據分析具有廣泛的應用范圍. 在產(chǎn)品的整個(gè)生命周期中,數據分析過(guò)程是質(zhì)量管理體系的支持過(guò)程,包括從產(chǎn)品市場(chǎng)研究到售后服務(wù)到最終處置的整個(gè)過(guò)程. 需要適當地使用數據分析來(lái)提高有效性. 國內有很多大數據分析和挖掘工具,但是其中大多數是近年來(lái)出現的大數據技術(shù),它們必須具有計算機開(kāi)發(fā)能力,并且可以立即使用. 多功能工具較少. 作為主流中文大數據分析和挖掘工具產(chǎn)品的試用版,以下推薦了一個(gè)java / python中文子信息處理工具,該工具可以在沒(méi)有計算機知識的情況下直接使用:
NLPIR大數據語(yǔ)義智能分析平臺(以前稱(chēng)為ICTCLAS)是由北京理工大學(xué)大數據搜索與挖掘實(shí)驗室主任張華平開(kāi)發(fā)的. 它滿(mǎn)足了大數據內容采集,編譯和搜索的全面需求. 它結合了精確的網(wǎng)絡(luò )采集,對自然語(yǔ)言的理解,文本挖掘和語(yǔ)義搜索的最新研究成果近二十年來(lái)不斷創(chuàng )新. 該平臺提供了多種產(chǎn)品使用形式,例如客戶(hù)端工具,云服務(wù)和二次開(kāi)發(fā)接口. 每個(gè)中間件API均可無(wú)縫集成到客戶(hù)的各種復雜應用系統中,與Windows,Linux,Android,Maemo5,FreeBSD等不同操作系統平臺兼容,并可用于Java,Python,C等各種開(kāi)發(fā),C#等語(yǔ)言用法.

NLPIR大數據語(yǔ)義智能分析平臺的十三個(gè)功能:

NLPIR大數據語(yǔ)義智能分析平臺客戶(hù)端
精確采集: 通過(guò)兩種方式實(shí)時(shí)準確地從國內外Internet上采集大量信息: 主題采集(根據信息需求進(jìn)行主題采集)和網(wǎng)站采集(給定的內部定點(diǎn)采集功能)網(wǎng)址列表).
文檔轉換: 將文本信息轉換為doc,excel,pdf和ppt等多種主流文檔格式,其效率可以滿(mǎn)足大數據處理的要求.
新詞發(fā)現: 從文本中發(fā)現新詞和概念,用戶(hù)可以將其用于專(zhuān)業(yè)詞典的匯編,還可以進(jìn)一步對其進(jìn)行編輯和標記,將其導入分詞詞典中,從而提高了詞的準確性. 分詞系統,并適應新的語(yǔ)言多樣性.
批處理單詞分割: 原創(chuàng )語(yǔ)料庫的單詞分割,自動(dòng)識別未注冊的單詞(例如名稱(chēng),地名和機構名稱(chēng)),新單詞標記和詞性標記. 然后在分析過(guò)程中,導入用戶(hù)定義的字典.
語(yǔ)言統計: 根據分段和標注的結果,系統可以自動(dòng)對一元詞的頻率進(jìn)行統計,并對二元詞的轉移概率進(jìn)行統計. 對于常用術(shù)語(yǔ),將自動(dòng)給出相應的英語(yǔ)解釋.
文本聚類(lèi): 它可以自動(dòng)分析來(lái)自大規模數據的熱點(diǎn)事件,并提供事件主題的關(guān)鍵功能描述. 它還適用于長(cháng)文本和短文本(例如,短文本和微博)的熱點(diǎn)分析.
文本分類(lèi): 根據規則或培訓方法對大量文本進(jìn)行分類(lèi),可用于新聞分類(lèi),簡(jiǎn)歷分類(lèi),郵件分類(lèi),辦公文檔分類(lèi),區域分類(lèi)等許多方面.
摘要實(shí)體: 對于單篇或多篇文章,將自動(dòng)提取內容摘要,并提取人員名稱(chēng),地點(diǎn),組織,時(shí)間和主題關(guān)鍵字;方便用戶(hù)快速瀏覽文本內容.
智能過(guò)濾: 語(yǔ)義智能過(guò)濾和文本內容審查,內置中國最完整的單詞數據庫,智能識別變形,語(yǔ)音,傳統和簡(jiǎn)體等多種變體,并在語(yǔ)義上準確消除歧義.
情感分析: 對于預先指定的分析對象,系統會(huì )自動(dòng)分析大量文檔的情感趨勢: 情感極性和情感價(jià)值測量,并在原文中給出正負分數和句子示例.
重復數據刪除: 快速,準確地確定文件集合或數據庫中是否存在具有相同或相似內容的記錄,同時(shí)查找所有重復記錄.
全文搜索: 支持各種數據類(lèi)型,例如文本,數字,日期,字符串等,多字段有效搜索,支持查詢(xún)語(yǔ)法(例如AND / OR / NOT和NEAR接近),并支持維吾爾文,藏文,蒙古語(yǔ),阿拉伯語(yǔ),韓語(yǔ)和其他少數民族語(yǔ)言的搜索.
編碼轉換: 自動(dòng)識別內容的編碼,并將編碼統一轉換為其他編碼.
用R搜集和映射臉書(shū)數據的初學(xué)者向導
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 177 次瀏覽 ? 2020-08-17 01:01
學(xué)習使用 R 的 twitteR 和 leaflet 包, 你就可以把任何話(huà)題的推文定位畫(huà)在地圖上。
當我開(kāi)始學(xué)習 R ,我也須要學(xué)習怎么出于研究的目的地搜集臉書(shū)數據并對其進(jìn)行映射。盡管網(wǎng)上關(guān)于這個(gè)話(huà)題的信息好多,但我發(fā)現無(wú)法理解哪些與搜集并映射臉書(shū)數據相關(guān)。我除了是個(gè) R 菜鳥(niǎo),而且對各類(lèi)教程中技術(shù)名詞不熟悉。但雖然困難重重,我成功了!在這個(gè)教程里,我將以一種菜鳥(niǎo)程序員都能讀懂的方法來(lái)功略怎么搜集臉書(shū)數據并來(lái)臨展如今地圖中。
創(chuàng )建應用程序
如果你沒(méi)有臉書(shū)賬號,首先你須要 注冊一個(gè)。然后,到 創(chuàng )建一個(gè)容許你搜集臉書(shū)數據的應用程序。別擔心,創(chuàng )建應用程序十分簡(jiǎn)單。你創(chuàng )建的應用程序會(huì )與臉書(shū)應用程序插口(API)相連。 想象 API 是一個(gè)多功能電子個(gè)人助手。你可以使用 API 讓其它程序幫你做事。這樣一來(lái),你可以接入臉書(shū) API 令其搜集數據。只需確保不要懇求太多,因為臉書(shū)數據懇求次數是有限制 的。
采集推文有兩個(gè)可用的 API 。你若果做一次性的推文搜集,那么使用 REST API. 若是想在特定時(shí)間內持續搜集,可以用 streaming API。教程中我主要使用 REST API。
創(chuàng )建應用程序以后,前往 Keys and Access Tokens 標簽。你須要 Consumer Key (API key)、 Consumer Secret (API secret)、 Access Token 和 Access Token Secret 才能在 R 中訪(fǎng)問(wèn)你的應用程序。
采集臉書(shū)數據
下一步是打開(kāi) R 準備寫(xiě)代碼。對于初學(xué)者,我推薦使用 RStudio,這是 R 的集成開(kāi)發(fā)環(huán)境 (IDE) 。我發(fā)覺(jué) RStudio 在解決問(wèn)題和測試代碼時(shí)很實(shí)用。 R 有訪(fǎng)問(wèn)該 REST API 的包叫 twitteR。
打開(kāi) RStudio 并新建 RScript。做好這種以后,你須要安裝和加載 twitteR 包:
install.packages("twitteR")#安裝TwitteRlibrary(twitteR)#載入TwitteR
安裝并載入 twitteR 包然后,你得輸入上文提到的應用程序的 API 信息:
api_key""#在冒號內裝入你的APIkeyapi_secret""#在冒號內裝入你的APIsecrettokentoken""#在冒號內裝入你的tokentoken_secret""#在冒號內裝入你的tokensecret
接下來(lái),連接臉書(shū)訪(fǎng)問(wèn) API:
setup_twitter_oauth(api_key,api_secret,token,token_secret)
我們來(lái)試試使臉書(shū)搜索有關(guān)社區新苑和農夫市場(chǎng):
tweets"communitygardenOR#communitygardenORfarmersmarketOR#farmersmarket",n=200,lang="en")
這個(gè)代碼意思是搜索前 200 篇 (n = 200) 英文 (lang = "en") 的推文, 包括關(guān)鍵詞 community garden 或 farmers market 或任何提到這種關(guān)鍵詞的話(huà)題標簽。
推特搜索完成以后,在數據框中保存你的結果:
tweets.df
為了用推文創(chuàng )建地圖,你須要搜集的導入為 .csv 文件:
write.csv(tweets.df,"C:\Users\YourName\Documents\ApptoMap\tweets.csv")#anexampleofafileextensionofthefolderinwhichyouwanttosavethe.csvfile.
運行前確保 R 代碼已保存之后繼續進(jìn)行下一步。.
生成地圖
現在你有了可以展示在地圖上的數據。在此教程中,我們將用一個(gè) R 包 Leaflet 做一個(gè)基本的應用程序,這是一個(gè)生成交互式地圖的熱門(mén) JavaScript 庫。 Leaflet 使用 magrittr 管道運算符 (%>%), 由于其句型自然,易于寫(xiě)代碼。剛接觸可能有點(diǎn)奇怪,但它確實(shí)增加了寫(xiě)代碼的工作量。
為了清晰起見(jiàn),在 RStudio 打開(kāi)一個(gè)新的 R 腳本安裝這種包:
install.packages("leaflet")install.packages("maps")library(leaflet)library(maps)
現在須要一個(gè)路徑使 Leaflet 訪(fǎng)問(wèn)你的數據:
read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv",stringsAsFactors=FALSE)
stringAsFactors = FALSE 意思是保留信息,不將它轉化成 factors。 (想了解 factors,讀這篇文章"stringsAsFactors: An unauthorized biography", 作者 Roger Peng)
是時(shí)侯制做你的 Leaflet 地圖了。我們將使用 OpenStreetMap基本地圖來(lái)做你的地圖:
m%addTiles()
我們在基本地圖上加個(gè)圈。對于 lng 和 lat,輸入收錄推文的經(jīng)緯度的列名,并在上面加個(gè)~。 ~longitude 和 ~latitude 指向你的 .csv 文件中與列名:
m%>%addCircles(lng=~longitude,lat=~latitude,popup=mymap$type,weight=8,radius=40,color="#fb3004",stroke=TRUE,fillOpacity=0.8)
運行你的代碼。會(huì )彈出網(wǎng)頁(yè)瀏覽器并展示你的地圖。這是我后面搜集的推文的地圖:
推文定位地圖
帶定位的推文地圖,使用了 Leaflet 和 OpenStreetMap CC-BY-SA
雖然你可能會(huì )對地圖上的圖文數目這么之小倍感驚奇,通常只有 1% 的推文記錄了地理編碼。我搜集了總量為 366 的推文,但只有 10(大概總推文的 3%)是記錄了地理編碼的。如果你為得到記錄了地理編碼的推文而困惑,改變搜索關(guān)鍵詞瞧瞧能不能得到更好的結果。
總結
對于初學(xué)者,把以上所有碎片結合上去,從臉書(shū)數據生成一個(gè) Leaflet 地圖可能太艱辛。 這個(gè)教程基于我完成這個(gè)任務(wù)的經(jīng)驗,我希望它能使你的學(xué)習過(guò)程顯得更輕松。
(題圖:瓊斯·貝克. CC BY-SA 4.0. 來(lái)源: Cloud, Globe. Both CC0.)
作者:Dorris Scott 查看全部
用R搜集和映射臉書(shū)數據的初學(xué)者向導

學(xué)習使用 R 的 twitteR 和 leaflet 包, 你就可以把任何話(huà)題的推文定位畫(huà)在地圖上。
當我開(kāi)始學(xué)習 R ,我也須要學(xué)習怎么出于研究的目的地搜集臉書(shū)數據并對其進(jìn)行映射。盡管網(wǎng)上關(guān)于這個(gè)話(huà)題的信息好多,但我發(fā)現無(wú)法理解哪些與搜集并映射臉書(shū)數據相關(guān)。我除了是個(gè) R 菜鳥(niǎo),而且對各類(lèi)教程中技術(shù)名詞不熟悉。但雖然困難重重,我成功了!在這個(gè)教程里,我將以一種菜鳥(niǎo)程序員都能讀懂的方法來(lái)功略怎么搜集臉書(shū)數據并來(lái)臨展如今地圖中。
創(chuàng )建應用程序
如果你沒(méi)有臉書(shū)賬號,首先你須要 注冊一個(gè)。然后,到 創(chuàng )建一個(gè)容許你搜集臉書(shū)數據的應用程序。別擔心,創(chuàng )建應用程序十分簡(jiǎn)單。你創(chuàng )建的應用程序會(huì )與臉書(shū)應用程序插口(API)相連。 想象 API 是一個(gè)多功能電子個(gè)人助手。你可以使用 API 讓其它程序幫你做事。這樣一來(lái),你可以接入臉書(shū) API 令其搜集數據。只需確保不要懇求太多,因為臉書(shū)數據懇求次數是有限制 的。
采集推文有兩個(gè)可用的 API 。你若果做一次性的推文搜集,那么使用 REST API. 若是想在特定時(shí)間內持續搜集,可以用 streaming API。教程中我主要使用 REST API。
創(chuàng )建應用程序以后,前往 Keys and Access Tokens 標簽。你須要 Consumer Key (API key)、 Consumer Secret (API secret)、 Access Token 和 Access Token Secret 才能在 R 中訪(fǎng)問(wèn)你的應用程序。
采集臉書(shū)數據
下一步是打開(kāi) R 準備寫(xiě)代碼。對于初學(xué)者,我推薦使用 RStudio,這是 R 的集成開(kāi)發(fā)環(huán)境 (IDE) 。我發(fā)覺(jué) RStudio 在解決問(wèn)題和測試代碼時(shí)很實(shí)用。 R 有訪(fǎng)問(wèn)該 REST API 的包叫 twitteR。
打開(kāi) RStudio 并新建 RScript。做好這種以后,你須要安裝和加載 twitteR 包:
install.packages("twitteR")#安裝TwitteRlibrary(twitteR)#載入TwitteR
安裝并載入 twitteR 包然后,你得輸入上文提到的應用程序的 API 信息:
api_key""#在冒號內裝入你的APIkeyapi_secret""#在冒號內裝入你的APIsecrettokentoken""#在冒號內裝入你的tokentoken_secret""#在冒號內裝入你的tokensecret
接下來(lái),連接臉書(shū)訪(fǎng)問(wèn) API:
setup_twitter_oauth(api_key,api_secret,token,token_secret)
我們來(lái)試試使臉書(shū)搜索有關(guān)社區新苑和農夫市場(chǎng):
tweets"communitygardenOR#communitygardenORfarmersmarketOR#farmersmarket",n=200,lang="en")
這個(gè)代碼意思是搜索前 200 篇 (n = 200) 英文 (lang = "en") 的推文, 包括關(guān)鍵詞 community garden 或 farmers market 或任何提到這種關(guān)鍵詞的話(huà)題標簽。
推特搜索完成以后,在數據框中保存你的結果:
tweets.df
為了用推文創(chuàng )建地圖,你須要搜集的導入為 .csv 文件:
write.csv(tweets.df,"C:\Users\YourName\Documents\ApptoMap\tweets.csv")#anexampleofafileextensionofthefolderinwhichyouwanttosavethe.csvfile.
運行前確保 R 代碼已保存之后繼續進(jìn)行下一步。.
生成地圖
現在你有了可以展示在地圖上的數據。在此教程中,我們將用一個(gè) R 包 Leaflet 做一個(gè)基本的應用程序,這是一個(gè)生成交互式地圖的熱門(mén) JavaScript 庫。 Leaflet 使用 magrittr 管道運算符 (%>%), 由于其句型自然,易于寫(xiě)代碼。剛接觸可能有點(diǎn)奇怪,但它確實(shí)增加了寫(xiě)代碼的工作量。
為了清晰起見(jiàn),在 RStudio 打開(kāi)一個(gè)新的 R 腳本安裝這種包:
install.packages("leaflet")install.packages("maps")library(leaflet)library(maps)
現在須要一個(gè)路徑使 Leaflet 訪(fǎng)問(wèn)你的數據:
read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv",stringsAsFactors=FALSE)
stringAsFactors = FALSE 意思是保留信息,不將它轉化成 factors。 (想了解 factors,讀這篇文章"stringsAsFactors: An unauthorized biography", 作者 Roger Peng)
是時(shí)侯制做你的 Leaflet 地圖了。我們將使用 OpenStreetMap基本地圖來(lái)做你的地圖:
m%addTiles()
我們在基本地圖上加個(gè)圈。對于 lng 和 lat,輸入收錄推文的經(jīng)緯度的列名,并在上面加個(gè)~。 ~longitude 和 ~latitude 指向你的 .csv 文件中與列名:
m%>%addCircles(lng=~longitude,lat=~latitude,popup=mymap$type,weight=8,radius=40,color="#fb3004",stroke=TRUE,fillOpacity=0.8)
運行你的代碼。會(huì )彈出網(wǎng)頁(yè)瀏覽器并展示你的地圖。這是我后面搜集的推文的地圖:

推文定位地圖
帶定位的推文地圖,使用了 Leaflet 和 OpenStreetMap CC-BY-SA
雖然你可能會(huì )對地圖上的圖文數目這么之小倍感驚奇,通常只有 1% 的推文記錄了地理編碼。我搜集了總量為 366 的推文,但只有 10(大概總推文的 3%)是記錄了地理編碼的。如果你為得到記錄了地理編碼的推文而困惑,改變搜索關(guān)鍵詞瞧瞧能不能得到更好的結果。
總結
對于初學(xué)者,把以上所有碎片結合上去,從臉書(shū)數據生成一個(gè) Leaflet 地圖可能太艱辛。 這個(gè)教程基于我完成這個(gè)任務(wù)的經(jīng)驗,我希望它能使你的學(xué)習過(guò)程顯得更輕松。
(題圖:瓊斯·貝克. CC BY-SA 4.0. 來(lái)源: Cloud, Globe. Both CC0.)
作者:Dorris Scott
Facebook內容采集/用戶(hù)信息數據抓取API爬蟲(chóng)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 1906 次瀏覽 ? 2020-08-16 21:38
上個(gè)月老朋友給我介紹了一個(gè)可以采Facebook內容和用戶(hù)信息的第三方API爬蟲(chóng)提供商iDataAPI,連續一周的百萬(wàn)條級別測試發(fā)覺(jué)穩定性不錯,準備加入到下半年向省里申報的海外信息數據檢測項目當中。
Facebook官方即使提供了Graph API,不過(guò)好多信息在最新版本的API中是不提供的。比如按照關(guān)鍵字搜索用戶(hù)發(fā)貼等等。通過(guò)PC端的web頁(yè)面抓取難度也很大,因為Facebook的頁(yè)面使用了大量的js腳本動(dòng)態(tài)加載數據,所以據說(shuō)她們研制了云端分布式&手機端抓取數據的爬蟲(chóng),就太感興趣試一試,測試結果符合預期。
我們主要用到的功能如下:
根據關(guān)鍵字抓取用戶(hù)的時(shí)間線(xiàn)抓取某用戶(hù)的資料抓取某用戶(hù)的好友抓取某用戶(hù)的貼子
通過(guò)使用這幾項功能最終可以生成一個(gè)關(guān)系網(wǎng)路,為后序的NLP工作打下基礎?;谶@個(gè)API爬蟲(chóng),后續進(jìn)一步接入輿情監測,情感剖析,意見(jiàn)挖掘等等。
這個(gè)iDataAPI提供包括一個(gè)完整的web控制界面,可以在瀏覽器中測試爬蟲(chóng)(facebook、twitter、微博、youtube...測了都很不多的,難得),后臺可以完整的創(chuàng )建任務(wù)、查看日志、查看數據,普通開(kāi)發(fā)者注冊就送錢(qián)免費測試了。只是目前項目還在申報期,我們研究院須要的量級比較大,等前面簽個(gè)協(xié)議包月,加上TWITTER這種,每天恐怕得采集個(gè)千萬(wàn)條。
返回示例值(FACEBOOK帖子){ "hasNext": true, "retcode": "000000", "appCode": "facebook", "dataType": "post", "pageToken": "enc_AdBhgxzOwy0fZBFjW6GXwbjJDRUca1SS5ccSTKp4TvchMAF3De0qdfVEC8sZAcCQZCw1CtORi9eLls3iJvJJk8PlNIQ|1493425239", "data": [ { "posterId": "4", "commentCount": 76221, "posterScreenName": "Mark Zuckerberg", "title": null, "url": "https:\/\/www.facebook.com\/4_10103685865597591", "imageUrls": [ "https:\/\/fb-s-d-a.akamaihd.net\/h-ak-xtp1\/v\/t15.0-10\/s720x720\/18223192_10103685908017581_8465195272706719744_n.jpg?_nc_ad=z-m&oh=e0736750f4882bed329ad89749849443&oe=59C22C86&__gda__=1505738387_e11048d689aba9e12e3fef771eab44f5" ], "originUrl": "https:\/\/www.facebook.com\/zuck\/videos\/10103685865597591\/", "geoPoint": "37.484, -122.149", "mediaType": "video", "publishDate": 1493494203, "likeCount": 173477, "content": "Part II of driving through South Bend, Indiana with Mayor Pete Buttigieg.", "parentPostId": "3791568f35f4c067d6403a5c344136cc", "shareCount": 9506, "parentAppCode": "facebook", "publishDateStr": "2017-04-29T19:30:03", "id": "4_10103685865597591", "origin": false, "originContent": null } ]}
返回示例值(FACEBOOK用戶(hù)信息){ "hasNext": false, "retcode": "000000", "appCode": "facebook", "dataType": "profile", "pageToken": null, "data": [ { "userName": "zuck", "idType": "user", "educations": [ { "schoolName": "Ardsley High School" }, { "schoolName": "Phillips Exeter Academy" }, { "schoolName": "Harvard University" } ], "works": [ { "employer": "Chan Zuckerberg Initiative" }, { "employer": "Facebook" } ], "idVerified": null, "friendCount": null, "idVerifiedInfo": null, "url": "https:\/\/www.facebook.com\/4", "gender": "m", "fansCount": null, "avatarUrl": "https:\/\/fb-s-c-a.akamaihd.net\/h-ak-fbx\/v\/t34.0-1\/p50x50\/16176889_112685309244626_578204711_n.jpg?efg=eyJkdHciOiIifQ==&_nc_ad=z-m&oh=1d19d2bcf1881ee7deaaf7cf777cb194&oe=597DA91E&__gda__=1501340296_20445fee97f7852820dbda04f427e5d8", "followCount": null, "viewCount": null, "postCount": null, "birthday": null, "location": "Palo Alto, California", "likeCount": null, "id": "4", "biography": "I'm trying to make the world a more open place.", "screenName": "Mark Zuckerberg" } ]}
API平臺:
返回參數:
后臺: 查看全部
Facebook內容采集/用戶(hù)信息數據抓取API爬蟲(chóng)
上個(gè)月老朋友給我介紹了一個(gè)可以采Facebook內容和用戶(hù)信息的第三方API爬蟲(chóng)提供商iDataAPI,連續一周的百萬(wàn)條級別測試發(fā)覺(jué)穩定性不錯,準備加入到下半年向省里申報的海外信息數據檢測項目當中。
Facebook官方即使提供了Graph API,不過(guò)好多信息在最新版本的API中是不提供的。比如按照關(guān)鍵字搜索用戶(hù)發(fā)貼等等。通過(guò)PC端的web頁(yè)面抓取難度也很大,因為Facebook的頁(yè)面使用了大量的js腳本動(dòng)態(tài)加載數據,所以據說(shuō)她們研制了云端分布式&手機端抓取數據的爬蟲(chóng),就太感興趣試一試,測試結果符合預期。
我們主要用到的功能如下:
根據關(guān)鍵字抓取用戶(hù)的時(shí)間線(xiàn)抓取某用戶(hù)的資料抓取某用戶(hù)的好友抓取某用戶(hù)的貼子
通過(guò)使用這幾項功能最終可以生成一個(gè)關(guān)系網(wǎng)路,為后序的NLP工作打下基礎?;谶@個(gè)API爬蟲(chóng),后續進(jìn)一步接入輿情監測,情感剖析,意見(jiàn)挖掘等等。
這個(gè)iDataAPI提供包括一個(gè)完整的web控制界面,可以在瀏覽器中測試爬蟲(chóng)(facebook、twitter、微博、youtube...測了都很不多的,難得),后臺可以完整的創(chuàng )建任務(wù)、查看日志、查看數據,普通開(kāi)發(fā)者注冊就送錢(qián)免費測試了。只是目前項目還在申報期,我們研究院須要的量級比較大,等前面簽個(gè)協(xié)議包月,加上TWITTER這種,每天恐怕得采集個(gè)千萬(wàn)條。
返回示例值(FACEBOOK帖子){ "hasNext": true, "retcode": "000000", "appCode": "facebook", "dataType": "post", "pageToken": "enc_AdBhgxzOwy0fZBFjW6GXwbjJDRUca1SS5ccSTKp4TvchMAF3De0qdfVEC8sZAcCQZCw1CtORi9eLls3iJvJJk8PlNIQ|1493425239", "data": [ { "posterId": "4", "commentCount": 76221, "posterScreenName": "Mark Zuckerberg", "title": null, "url": "https:\/\/www.facebook.com\/4_10103685865597591", "imageUrls": [ "https:\/\/fb-s-d-a.akamaihd.net\/h-ak-xtp1\/v\/t15.0-10\/s720x720\/18223192_10103685908017581_8465195272706719744_n.jpg?_nc_ad=z-m&oh=e0736750f4882bed329ad89749849443&oe=59C22C86&__gda__=1505738387_e11048d689aba9e12e3fef771eab44f5" ], "originUrl": "https:\/\/www.facebook.com\/zuck\/videos\/10103685865597591\/", "geoPoint": "37.484, -122.149", "mediaType": "video", "publishDate": 1493494203, "likeCount": 173477, "content": "Part II of driving through South Bend, Indiana with Mayor Pete Buttigieg.", "parentPostId": "3791568f35f4c067d6403a5c344136cc", "shareCount": 9506, "parentAppCode": "facebook", "publishDateStr": "2017-04-29T19:30:03", "id": "4_10103685865597591", "origin": false, "originContent": null } ]}
返回示例值(FACEBOOK用戶(hù)信息){ "hasNext": false, "retcode": "000000", "appCode": "facebook", "dataType": "profile", "pageToken": null, "data": [ { "userName": "zuck", "idType": "user", "educations": [ { "schoolName": "Ardsley High School" }, { "schoolName": "Phillips Exeter Academy" }, { "schoolName": "Harvard University" } ], "works": [ { "employer": "Chan Zuckerberg Initiative" }, { "employer": "Facebook" } ], "idVerified": null, "friendCount": null, "idVerifiedInfo": null, "url": "https:\/\/www.facebook.com\/4", "gender": "m", "fansCount": null, "avatarUrl": "https:\/\/fb-s-c-a.akamaihd.net\/h-ak-fbx\/v\/t34.0-1\/p50x50\/16176889_112685309244626_578204711_n.jpg?efg=eyJkdHciOiIifQ==&_nc_ad=z-m&oh=1d19d2bcf1881ee7deaaf7cf777cb194&oe=597DA91E&__gda__=1501340296_20445fee97f7852820dbda04f427e5d8", "followCount": null, "viewCount": null, "postCount": null, "birthday": null, "location": "Palo Alto, California", "likeCount": null, "id": "4", "biography": "I'm trying to make the world a more open place.", "screenName": "Mark Zuckerberg" } ]}
API平臺:
返回參數:
后臺:
一篇文章帶你用Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)現網(wǎng)易云音樂(lè )歌詞抓取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 196 次瀏覽 ? 2020-08-15 00:21
前幾天小編給你們分享了數據可視化剖析,在文尾提到了網(wǎng)易云音樂(lè )歌詞爬取,今天小編給你們分享網(wǎng)易云音樂(lè )歌詞爬取技巧。本文的總體思路如下:找到正確的URL,獲取源碼;利用bs4解析源碼,獲取歌曲名和歌曲ID;調用網(wǎng)易云歌曲API,獲取歌詞;將歌詞寫(xiě)入文件,并存入本地。本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有/#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在 查看全部

前幾天小編給你們分享了數據可視化剖析,在文尾提到了網(wǎng)易云音樂(lè )歌詞爬取,今天小編給你們分享網(wǎng)易云音樂(lè )歌詞爬取技巧。本文的總體思路如下:找到正確的URL,獲取源碼;利用bs4解析源碼,獲取歌曲名和歌曲ID;調用網(wǎng)易云歌曲API,獲取歌詞;將歌詞寫(xiě)入文件,并存入本地。本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:

本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。

一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有/#號的。廢話(huà)不多說(shuō),直接上代碼。

本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
《商務(wù)數據采集與處理》教學(xué)大綱.doc 4頁(yè)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 333 次瀏覽 ? 2020-08-12 00:37
H4研究5使用現代工具Excel、Database、CSV、TXT、電子商務(wù)平臺、Web爬蟲(chóng)、API、Java、Python、PHP、為優(yōu)采云數據采集系統H6工程與社會(huì )7環(huán)境和可持續發(fā)展8職業(yè)規范培養認真、謹慎的職業(yè)精神;提升各類(lèi)工具的使用熟練度和精確度H9個(gè)人和團隊10溝通11項目管理12終生學(xué)習了解新的各種商務(wù)數據采集與處理軟件,不斷提升各種商務(wù)數據采集與處理軟件的操作能力H注:“課程教學(xué)要求”欄中內容為針對該課程適用專(zhuān)業(yè)的專(zhuān)業(yè)結業(yè)要求與相關(guān)教學(xué)要求的具體描述?!瓣P(guān)聯(lián)程度”欄中字母表示兩者關(guān)聯(lián)程度。關(guān)聯(lián)程度按高關(guān)聯(lián)、中關(guān)聯(lián)、低關(guān)聯(lián)三檔分別表示為“H”“M”或“L”?!罢n程教學(xué)要求”及“關(guān)聯(lián)程度”中的空白欄表示該課程與所對應的專(zhuān)業(yè)結業(yè)要求條目不相關(guān)。四、課程教學(xué)內容章節名稱(chēng)主要內容重難點(diǎn)關(guān)鍵詞學(xué)時(shí)類(lèi)型1商務(wù)數據采集概述商務(wù)數據的定義及類(lèi)型商務(wù)數據的主要來(lái)源及用途商務(wù)數據采集和處理的基本技巧商務(wù)數據的定義及類(lèi)型,商務(wù)數據的主要來(lái)源及用途,商務(wù)數據采集和處理的基本技巧3理論2商務(wù)數據采集工具及應用商務(wù)數據采集工具介紹爬蟲(chóng)軟件在商務(wù)數據剖析中的應用Python 爬蟲(chóng)在商務(wù)數據采集中的應用數據采集方法,常用的數據采集工具,Python 爬蟲(chóng)的優(yōu)劣勢3理論+操作3數據采集方法與采集器了解數據采集器數據采集器的安裝與界面數據采集器的優(yōu)勢,安裝注冊數據采集器2理論+操作4數據采集器應用簡(jiǎn)易采集模式及實(shí)例向導模式及實(shí)例自定義采集模式使用簡(jiǎn)易采集模式進(jìn)行常見(jiàn)網(wǎng)站數據采集,使用自定義采集模式進(jìn)行列表詳情頁(yè)數據采集,掌握在規則中對采集內容做初步篩選和清洗操作3理論+操作5數據采集器中級應用屏蔽網(wǎng)頁(yè)廣告切換瀏覽器版本嚴禁加載圖片增量采集智能防封登陸采集網(wǎng)頁(yè)源碼提取圖片、附件的采集與下載循環(huán)切換下拉框聯(lián)通鍵盤(pán)表針到元素上數據采集器的中級功能,增量采集和智能防封的應對方法,增量采集的形式5理論+操作6數據采集器定位方法及云采集XPath 數據定位云采集XPath 書(shū)寫(xiě)方式,云采集功能與使用2理論+操作7數據采集器采集實(shí)例數據采集器應用領(lǐng)域金融網(wǎng)站、新聞網(wǎng)站、職場(chǎng)急聘、店鋪位置的數據采集競品數據、企業(yè)產(chǎn)品相關(guān)評價(jià)、公眾號文章信息的采集在實(shí)訓中獲得數據采集能力,熟悉各種數據采集領(lǐng)域典型網(wǎng)站4理論+操作8數據處理數據清洗與加工數據處理的定義及作用,常見(jiàn)的數據清洗方式,對各種數據進(jìn)行標準化加工處理2理論+操作五、考核要求及成績(jì)評定序號成績(jì)類(lèi)別考評形式考評要求權重(%)備注1期終成績(jì)期末考試大作業(yè)50百分制,60分為及格2平常成績(jì)實(shí)戰訓練10次40優(yōu)、良、中、及格、不及格3平常表現缺勤情況10兩次未出席課程則未能獲得學(xué)分注:此表中內容為該課程的全部考評方法及其相關(guān)信息。六、學(xué)生學(xué)習建議1.理論配合實(shí)戰訓練進(jìn)行學(xué)習,提高中學(xué)生在商務(wù)數據剖析與應用專(zhuān)業(yè)課程中數據采集和處理問(wèn)題的能力;2.在條件容許的情況下,可以結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。3.培養、提升中學(xué)生按照不同須要進(jìn)行處理和清洗數據的能力。 查看全部
《商務(wù)數據采集與處理》教學(xué)大綱課程信息課程名稱(chēng):《商務(wù)數據采集與處理》課程類(lèi)別:專(zhuān)業(yè)基礎課課程性質(zhì):必修計劃學(xué)時(shí):24計劃學(xué)分:3先修課程:無(wú)二、課程簡(jiǎn)介本書(shū)結合了一線(xiàn)大數據企業(yè)在商務(wù)數據上的采集和應用方法,從數據基礎、數據來(lái)源、數據采集到數據處理等方面展開(kāi)內容講解。本書(shū)融入了大量的實(shí)操案例,對學(xué)習目標進(jìn)行詳盡講解,反復加強“理論圍繞實(shí)操,實(shí)操推進(jìn)理論,真實(shí)把握技能”的教學(xué)理念。三、課程教學(xué)要求序號專(zhuān)業(yè)結業(yè)要求課程教學(xué)要求關(guān)聯(lián)程度1工程知識了解商務(wù)數據的基礎知識及來(lái)源、常規數據采集工具及應用,對商務(wù)數據以及數據采集有直觀(guān)認識,了解數據采集方法與采集器、數據采集器應用、數據采集器中級應用、數據采集器定位方法及云采集以及使用較為廣泛的采集器優(yōu)采云采集器,掌握在采集數據完成后怎樣進(jìn)行數據處理,根據不同須要進(jìn)行處理和清洗,使數據剖析結果更為確切。H2問(wèn)題剖析發(fā)覺(jué)商務(wù)數據采集與處理中存在的問(wèn)題,尋找出現問(wèn)題的誘因H3設計/開(kāi)發(fā)解決方案提升商務(wù)數據的基礎知識及來(lái)源、常規數據采集工具及應用,對商務(wù)數據以及數據采集有直觀(guān)認識,結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。
H4研究5使用現代工具Excel、Database、CSV、TXT、電子商務(wù)平臺、Web爬蟲(chóng)、API、Java、Python、PHP、為優(yōu)采云數據采集系統H6工程與社會(huì )7環(huán)境和可持續發(fā)展8職業(yè)規范培養認真、謹慎的職業(yè)精神;提升各類(lèi)工具的使用熟練度和精確度H9個(gè)人和團隊10溝通11項目管理12終生學(xué)習了解新的各種商務(wù)數據采集與處理軟件,不斷提升各種商務(wù)數據采集與處理軟件的操作能力H注:“課程教學(xué)要求”欄中內容為針對該課程適用專(zhuān)業(yè)的專(zhuān)業(yè)結業(yè)要求與相關(guān)教學(xué)要求的具體描述?!瓣P(guān)聯(lián)程度”欄中字母表示兩者關(guān)聯(lián)程度。關(guān)聯(lián)程度按高關(guān)聯(lián)、中關(guān)聯(lián)、低關(guān)聯(lián)三檔分別表示為“H”“M”或“L”?!罢n程教學(xué)要求”及“關(guān)聯(lián)程度”中的空白欄表示該課程與所對應的專(zhuān)業(yè)結業(yè)要求條目不相關(guān)。四、課程教學(xué)內容章節名稱(chēng)主要內容重難點(diǎn)關(guān)鍵詞學(xué)時(shí)類(lèi)型1商務(wù)數據采集概述商務(wù)數據的定義及類(lèi)型商務(wù)數據的主要來(lái)源及用途商務(wù)數據采集和處理的基本技巧商務(wù)數據的定義及類(lèi)型,商務(wù)數據的主要來(lái)源及用途,商務(wù)數據采集和處理的基本技巧3理論2商務(wù)數據采集工具及應用商務(wù)數據采集工具介紹爬蟲(chóng)軟件在商務(wù)數據剖析中的應用Python 爬蟲(chóng)在商務(wù)數據采集中的應用數據采集方法,常用的數據采集工具,Python 爬蟲(chóng)的優(yōu)劣勢3理論+操作3數據采集方法與采集器了解數據采集器數據采集器的安裝與界面數據采集器的優(yōu)勢,安裝注冊數據采集器2理論+操作4數據采集器應用簡(jiǎn)易采集模式及實(shí)例向導模式及實(shí)例自定義采集模式使用簡(jiǎn)易采集模式進(jìn)行常見(jiàn)網(wǎng)站數據采集,使用自定義采集模式進(jìn)行列表詳情頁(yè)數據采集,掌握在規則中對采集內容做初步篩選和清洗操作3理論+操作5數據采集器中級應用屏蔽網(wǎng)頁(yè)廣告切換瀏覽器版本嚴禁加載圖片增量采集智能防封登陸采集網(wǎng)頁(yè)源碼提取圖片、附件的采集與下載循環(huán)切換下拉框聯(lián)通鍵盤(pán)表針到元素上數據采集器的中級功能,增量采集和智能防封的應對方法,增量采集的形式5理論+操作6數據采集器定位方法及云采集XPath 數據定位云采集XPath 書(shū)寫(xiě)方式,云采集功能與使用2理論+操作7數據采集器采集實(shí)例數據采集器應用領(lǐng)域金融網(wǎng)站、新聞網(wǎng)站、職場(chǎng)急聘、店鋪位置的數據采集競品數據、企業(yè)產(chǎn)品相關(guān)評價(jià)、公眾號文章信息的采集在實(shí)訓中獲得數據采集能力,熟悉各種數據采集領(lǐng)域典型網(wǎng)站4理論+操作8數據處理數據清洗與加工數據處理的定義及作用,常見(jiàn)的數據清洗方式,對各種數據進(jìn)行標準化加工處理2理論+操作五、考核要求及成績(jì)評定序號成績(jì)類(lèi)別考評形式考評要求權重(%)備注1期終成績(jì)期末考試大作業(yè)50百分制,60分為及格2平常成績(jì)實(shí)戰訓練10次40優(yōu)、良、中、及格、不及格3平常表現缺勤情況10兩次未出席課程則未能獲得學(xué)分注:此表中內容為該課程的全部考評方法及其相關(guān)信息。六、學(xué)生學(xué)習建議1.理論配合實(shí)戰訓練進(jìn)行學(xué)習,提高中學(xué)生在商務(wù)數據剖析與應用專(zhuān)業(yè)課程中數據采集和處理問(wèn)題的能力;2.在條件容許的情況下,可以結合市場(chǎng)上常用的數據采集和處理工具,開(kāi)發(fā)自發(fā)探求能力,更好地將專(zhuān)業(yè)所學(xué)和就業(yè)技能相結合,達到學(xué)以致用的目的。3.培養、提升中學(xué)生按照不同須要進(jìn)行處理和清洗數據的能力。
iMacros for Chrome V10.4.28 漢化免費版
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 216 次瀏覽 ? 2020-08-11 23:49
【功能特色】
1、瀏覽器自動(dòng)化:通過(guò)InternetExplorer,Firefox和Chrome手動(dòng)執行任務(wù)。沒(méi)有新的腳本語(yǔ)言要學(xué)習,您可以對Web瀏覽器進(jìn)行完整的編程控制,因此雖然是最復雜的任務(wù)也可以編撰腳本。
2、Web測試:自動(dòng)執行任何網(wǎng)站技術(shù)(包括Java,Flash,Flex或Silverlight小程序和所有AJAX元素)的功能,性能和回歸測試,并捕獲精確的網(wǎng)頁(yè)響應時(shí)間。將宏導入到SeleniumWebDriver代碼。
3、數據提?。阂粋€(gè)完整的工具集,用于將Web數據屏蔽到數據庫,電子表格或任何其他應用程序中。iMacros可以在短短幾分鐘內手動(dòng)完成所需的所有Web搜集。
4、全功能Web瀏覽器API:iMacros企業(yè)版手動(dòng)安裝Web瀏覽器API,可從任何Windows編程或腳本語(yǔ)言完成Web瀏覽器控件。通過(guò)這種強悍的命令,您可以使用支持使用COM對象的任何Windows編程語(yǔ)言來(lái)控制iMacros。幾乎所有的Windows編程語(yǔ)言都支持這些技術(shù),包括免費的WindowsScriptingHost、VisualBasic6、VisualBasic.NET、C#、Java、Perl、Python、C++、ASP、PHP和ASP.NET。 查看全部
iMacros中文版是專(zhuān)為站長(cháng)用戶(hù)構建的一款特別不錯的Web自動(dòng)化軟件,該軟件功能強悍,它可以幫助使用者執行手動(dòng)填寫(xiě)表單、從網(wǎng)站中提取數據、自動(dòng)測試網(wǎng)站、自動(dòng)登入到網(wǎng)路郵箱以及手動(dòng)重復執行任務(wù)等操作,可大大提高使用者的任務(wù)完成效率,它可以通過(guò)靈活的腳本使用與多語(yǔ)言的程序插口來(lái)自動(dòng)執行復雜的任務(wù)。

【功能特色】
1、瀏覽器自動(dòng)化:通過(guò)InternetExplorer,Firefox和Chrome手動(dòng)執行任務(wù)。沒(méi)有新的腳本語(yǔ)言要學(xué)習,您可以對Web瀏覽器進(jìn)行完整的編程控制,因此雖然是最復雜的任務(wù)也可以編撰腳本。
2、Web測試:自動(dòng)執行任何網(wǎng)站技術(shù)(包括Java,Flash,Flex或Silverlight小程序和所有AJAX元素)的功能,性能和回歸測試,并捕獲精確的網(wǎng)頁(yè)響應時(shí)間。將宏導入到SeleniumWebDriver代碼。
3、數據提?。阂粋€(gè)完整的工具集,用于將Web數據屏蔽到數據庫,電子表格或任何其他應用程序中。iMacros可以在短短幾分鐘內手動(dòng)完成所需的所有Web搜集。
4、全功能Web瀏覽器API:iMacros企業(yè)版手動(dòng)安裝Web瀏覽器API,可從任何Windows編程或腳本語(yǔ)言完成Web瀏覽器控件。通過(guò)這種強悍的命令,您可以使用支持使用COM對象的任何Windows編程語(yǔ)言來(lái)控制iMacros。幾乎所有的Windows編程語(yǔ)言都支持這些技術(shù),包括免費的WindowsScriptingHost、VisualBasic6、VisualBasic.NET、C#、Java、Perl、Python、C++、ASP、PHP和ASP.NET。
(IE9)Internet Explorer 9.0 簡(jiǎn)體英文正式版
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 222 次瀏覽 ? 2020-08-11 21:08
瀏覽器版本較低,官方已停止升級維護,建議升級到更快、更安全的瀏覽器,點(diǎn)擊立刻下載。
IE9英文正式版是谷歌推出的ie9英文版本,internet explorer 9是谷歌支持標準最規范的IE瀏覽器。IE9改進(jìn)IE瀏覽器性能,IE9支持XP/win7,本站提供ie9中文版官方下載.
Internet Explorer 9 正式版 (IE9正式版)是谷歌最新一款I(lǐng)E瀏覽器,IE9在各方面都有急劇提高,給你全新的瀏覽體驗!例如:全新的新 JavaScript 引擎促使IE9的運算速率更快;新增GPU 硬件加速,大大提高IE的運行速率;IE9 子系統全面改進(jìn),極大增強了對 HTML、CSS 和 JavaScript 的解釋效率;IE9 支持最新的 HTML5、CSS3、SVG 和 DOM L2&L3;整合更多開(kāi)發(fā)工具……
IE9截圖1
軟件特色
1、速度更快:IE9支持GPU加速功能,用戶(hù)網(wǎng)頁(yè)瀏覽速率將更快;
2、清新界面:優(yōu)化后的用戶(hù)界面愈發(fā)簡(jiǎn)練,網(wǎng)頁(yè)內容得到突出;
3、與Windows 7完美結合:Win7和IE9是絕配,適配性更強;IE9支持將常用網(wǎng)站鎖定到任務(wù)欄,便攜瀏覽您喜歡的網(wǎng)站;
4、支持標準:規范了網(wǎng)頁(yè)標準,使得各網(wǎng)站能獲得更好的支持,從而給用戶(hù)帶來(lái)更優(yōu)越的操作體驗!
截圖2
功能介紹
1、ie9新JavaScript引擎
IE9全新外置的“Chakra JavaScript引擎”充分利用當下主流計算機配置的多核心CPU,優(yōu)化協(xié)同運算能力,編譯、執行速率更快。同時(shí)與DOM的緊密集成,使得網(wǎng)路應用運行更順暢,反應更迅速。
ie9新JavaScript引擎軟件截圖3
2、ie9GPU硬件加速
IE9將全面支持HTML5 GPU硬件加速,借助GPU的效能來(lái)渲染標準的Web內容,如文字、圖像、視頻、SVG(可縮放矢量圖形)等網(wǎng)路信息,減少CPU負荷,大大的提升瀏覽器的速率。開(kāi)發(fā)人員無(wú)需為GPU硬件加速特點(diǎn)重新編撰網(wǎng)站,直接提高圖形處理性能。
ie9GPU硬件加速軟件截圖4
3、ie9子系統優(yōu)化,提升協(xié)同處理效率
IE9子系統全面改進(jìn),極大增強了對HTML、CSS和JavaScript的解釋效率。將布局以及渲染等方面的資源更合理的分配和優(yōu)化,在降低對顯存和處理資源耗損的同時(shí),讓網(wǎng)頁(yè)呈現和網(wǎng)路應用程序的運行速率愈發(fā)順暢。
截圖5
4、ie9全新用戶(hù)界面
IE9帶來(lái)全新用戶(hù)界面——簡(jiǎn)單、清晰、有效,盡可能簡(jiǎn)化瀏覽器的外型元素和操作步驟——希望用戶(hù)才能最大限度的“忽略”IE9的“存在”,而將注意力全部沉溺在精彩的網(wǎng)路內容當中。
ie9全新用戶(hù)界面截圖6
5、ie9全面支持最新網(wǎng)路標準
IE9支持最新的HTML5、CSS3、SVG和DOM L2&L3,你可以充分利用這種技術(shù)詮釋你的網(wǎng)路創(chuàng )意,不必再針對不同瀏覽器編撰不同代碼,大幅度增加你的開(kāi)發(fā)時(shí)間和難度。
6、ie9整合更多開(kāi)發(fā)工具
與其他瀏覽器相比,IE9外置了更多強悍的開(kāi)發(fā)人員工具——包括JavaScript剖析工具、CSS編輯器和新的網(wǎng)路剖析器等。這些工具當你須要時(shí)就在手邊,方便你進(jìn)行開(kāi)發(fā)和調試,實(shí)現與IE9的全方位整合。
7、ie9先進(jìn)的網(wǎng)路開(kāi)發(fā)技術(shù)
IE9提供了一系列先進(jìn)技術(shù),如D2D DirectX圖形構架和圖形、色彩解碼器等,助你實(shí)現高清視頻和多媒體交互。搭配GPU圖形硬件加速,讓畫(huà)面質(zhì)量和流暢性達到質(zhì)的提高,為你搭建一個(gè)更好的平臺,來(lái)為你的用戶(hù)詮釋前所未有的視覺(jué)、聽(tīng)覺(jué)體驗。
截圖7
8、ie9是網(wǎng)站,也是一個(gè)Windows 7程序
利用最新的Windows應用程序插口(API),開(kāi)發(fā)者才能使用JavaScript來(lái)定義鍵盤(pán)右鍵快捷菜單、任務(wù)欄縮略圖、跳轉列表項和觸控等功能,使其與Windows 7操作系統完美整合,帶來(lái)新的瀏覽形式,讓用戶(hù)體驗上升到新的高度。
9、ie9兼容性模式
IE9使開(kāi)發(fā)人員來(lái)選擇瀏覽站點(diǎn)時(shí)所使用的模式,其中包括IE9標準模式、IE8文檔模式、 兼容視圖模式(IE7)或Quirks模式 (IE5)。如果用戶(hù)單擊兼容模式按鍵,網(wǎng)站將以開(kāi)發(fā)者事先指定的模式或兼容視圖模式(IE7)運行,保證向后的兼容性和網(wǎng)站升級時(shí)的靈活性。
截圖8
常見(jiàn)問(wèn)題
IE9支持哪些系統?
可用于全部 Windows Vista 和 Windows 7 版本。
怎么調整IE9 使用兼容模式?
1、打開(kāi)IE瀏覽器,點(diǎn)擊“工具”選項,選擇“兼容性視圖設置”選項。
2、進(jìn)入兼容性視圖設置以后,填入所須要設置兼容模式的網(wǎng)址,點(diǎn)擊添加,最后點(diǎn)擊關(guān)掉即可。
3、重新打開(kāi)經(jīng)過(guò)設置以后的網(wǎng)頁(yè),會(huì )聽(tīng)到地址欄前面有一個(gè)象破碎紙片一樣的圖標,說(shuō)明兼容模式早已設置成功,在工具的下拉菜單也同樣可以看見(jiàn)在兼容模式上面也就對勾,說(shuō)明網(wǎng)頁(yè)的兼容模式早已設置成功。
更新日志
修復部份bug 查看全部

瀏覽器版本較低,官方已停止升級維護,建議升級到更快、更安全的瀏覽器,點(diǎn)擊立刻下載。
IE9英文正式版是谷歌推出的ie9英文版本,internet explorer 9是谷歌支持標準最規范的IE瀏覽器。IE9改進(jìn)IE瀏覽器性能,IE9支持XP/win7,本站提供ie9中文版官方下載.
Internet Explorer 9 正式版 (IE9正式版)是谷歌最新一款I(lǐng)E瀏覽器,IE9在各方面都有急劇提高,給你全新的瀏覽體驗!例如:全新的新 JavaScript 引擎促使IE9的運算速率更快;新增GPU 硬件加速,大大提高IE的運行速率;IE9 子系統全面改進(jìn),極大增強了對 HTML、CSS 和 JavaScript 的解釋效率;IE9 支持最新的 HTML5、CSS3、SVG 和 DOM L2&L3;整合更多開(kāi)發(fā)工具……

IE9截圖1
軟件特色
1、速度更快:IE9支持GPU加速功能,用戶(hù)網(wǎng)頁(yè)瀏覽速率將更快;
2、清新界面:優(yōu)化后的用戶(hù)界面愈發(fā)簡(jiǎn)練,網(wǎng)頁(yè)內容得到突出;
3、與Windows 7完美結合:Win7和IE9是絕配,適配性更強;IE9支持將常用網(wǎng)站鎖定到任務(wù)欄,便攜瀏覽您喜歡的網(wǎng)站;
4、支持標準:規范了網(wǎng)頁(yè)標準,使得各網(wǎng)站能獲得更好的支持,從而給用戶(hù)帶來(lái)更優(yōu)越的操作體驗!

截圖2
功能介紹
1、ie9新JavaScript引擎
IE9全新外置的“Chakra JavaScript引擎”充分利用當下主流計算機配置的多核心CPU,優(yōu)化協(xié)同運算能力,編譯、執行速率更快。同時(shí)與DOM的緊密集成,使得網(wǎng)路應用運行更順暢,反應更迅速。

ie9新JavaScript引擎軟件截圖3
2、ie9GPU硬件加速
IE9將全面支持HTML5 GPU硬件加速,借助GPU的效能來(lái)渲染標準的Web內容,如文字、圖像、視頻、SVG(可縮放矢量圖形)等網(wǎng)路信息,減少CPU負荷,大大的提升瀏覽器的速率。開(kāi)發(fā)人員無(wú)需為GPU硬件加速特點(diǎn)重新編撰網(wǎng)站,直接提高圖形處理性能。

ie9GPU硬件加速軟件截圖4
3、ie9子系統優(yōu)化,提升協(xié)同處理效率
IE9子系統全面改進(jìn),極大增強了對HTML、CSS和JavaScript的解釋效率。將布局以及渲染等方面的資源更合理的分配和優(yōu)化,在降低對顯存和處理資源耗損的同時(shí),讓網(wǎng)頁(yè)呈現和網(wǎng)路應用程序的運行速率愈發(fā)順暢。

截圖5
4、ie9全新用戶(hù)界面
IE9帶來(lái)全新用戶(hù)界面——簡(jiǎn)單、清晰、有效,盡可能簡(jiǎn)化瀏覽器的外型元素和操作步驟——希望用戶(hù)才能最大限度的“忽略”IE9的“存在”,而將注意力全部沉溺在精彩的網(wǎng)路內容當中。

ie9全新用戶(hù)界面截圖6
5、ie9全面支持最新網(wǎng)路標準
IE9支持最新的HTML5、CSS3、SVG和DOM L2&L3,你可以充分利用這種技術(shù)詮釋你的網(wǎng)路創(chuàng )意,不必再針對不同瀏覽器編撰不同代碼,大幅度增加你的開(kāi)發(fā)時(shí)間和難度。
6、ie9整合更多開(kāi)發(fā)工具
與其他瀏覽器相比,IE9外置了更多強悍的開(kāi)發(fā)人員工具——包括JavaScript剖析工具、CSS編輯器和新的網(wǎng)路剖析器等。這些工具當你須要時(shí)就在手邊,方便你進(jìn)行開(kāi)發(fā)和調試,實(shí)現與IE9的全方位整合。
7、ie9先進(jìn)的網(wǎng)路開(kāi)發(fā)技術(shù)
IE9提供了一系列先進(jìn)技術(shù),如D2D DirectX圖形構架和圖形、色彩解碼器等,助你實(shí)現高清視頻和多媒體交互。搭配GPU圖形硬件加速,讓畫(huà)面質(zhì)量和流暢性達到質(zhì)的提高,為你搭建一個(gè)更好的平臺,來(lái)為你的用戶(hù)詮釋前所未有的視覺(jué)、聽(tīng)覺(jué)體驗。

截圖7
8、ie9是網(wǎng)站,也是一個(gè)Windows 7程序
利用最新的Windows應用程序插口(API),開(kāi)發(fā)者才能使用JavaScript來(lái)定義鍵盤(pán)右鍵快捷菜單、任務(wù)欄縮略圖、跳轉列表項和觸控等功能,使其與Windows 7操作系統完美整合,帶來(lái)新的瀏覽形式,讓用戶(hù)體驗上升到新的高度。
9、ie9兼容性模式
IE9使開(kāi)發(fā)人員來(lái)選擇瀏覽站點(diǎn)時(shí)所使用的模式,其中包括IE9標準模式、IE8文檔模式、 兼容視圖模式(IE7)或Quirks模式 (IE5)。如果用戶(hù)單擊兼容模式按鍵,網(wǎng)站將以開(kāi)發(fā)者事先指定的模式或兼容視圖模式(IE7)運行,保證向后的兼容性和網(wǎng)站升級時(shí)的靈活性。

截圖8
常見(jiàn)問(wèn)題
IE9支持哪些系統?
可用于全部 Windows Vista 和 Windows 7 版本。
怎么調整IE9 使用兼容模式?
1、打開(kāi)IE瀏覽器,點(diǎn)擊“工具”選項,選擇“兼容性視圖設置”選項。
2、進(jìn)入兼容性視圖設置以后,填入所須要設置兼容模式的網(wǎng)址,點(diǎn)擊添加,最后點(diǎn)擊關(guān)掉即可。
3、重新打開(kāi)經(jīng)過(guò)設置以后的網(wǎng)頁(yè),會(huì )聽(tīng)到地址欄前面有一個(gè)象破碎紙片一樣的圖標,說(shuō)明兼容模式早已設置成功,在工具的下拉菜單也同樣可以看見(jiàn)在兼容模式上面也就對勾,說(shuō)明網(wǎng)頁(yè)的兼容模式早已設置成功。
更新日志
修復部份bug
利用Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)現對網(wǎng)易云音樂(lè )歌詞爬取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 178 次瀏覽 ? 2020-08-11 10:45
找到正確的URL,獲取源碼;
利用bs4解析源碼,獲取歌曲名和歌曲ID;
調用網(wǎng)易云歌曲API,獲取歌詞;
將歌詞寫(xiě)入文件,并存入本地。
本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
在這里相信有許多想要學(xué)習Python的朋友,大家可以+下Python學(xué)習分享褲:叁零肆+零伍零+柒玖玖,即可免費發(fā)放一整套系統的 Python學(xué)習教程!
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。
獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
標簽下,如下圖所示:
接下來(lái)我們借助美麗的湯來(lái)獲取目標信息,直接上代碼,如下圖:
此處要注意獲取ID的時(shí)侯須要對link進(jìn)行切塊處理,得到的數字便是歌曲的ID;另外,歌曲名是通過(guò)get_text方式獲取到的,最后借助zip函數將歌曲名和ID一一對應并進(jìn)行返回。
得到ID以后便可以步入到內頁(yè)獲取歌詞了,但是URL還是不給力,如下圖:
雖然我們可以明白的看見(jiàn)網(wǎng)頁(yè)上的白紙黑字呈現的歌詞信息,但是我們在該URL下卻未能獲取到歌詞信息。小編通過(guò)抓包,找到了歌詞的URL,發(fā)現其是POST懇求還有一大堆看不懂的data,總之這個(gè)URL是不能為我們效力。那該點(diǎn)解呢?
莫慌,小編找到了網(wǎng)易云音樂(lè )的API,只要把歌曲的ID置于A(yíng)PI鏈接上便可以獲取到歌詞了,代碼如下:
在A(yíng)PI中歌詞信息是以json格式加載的,所以須要借助json將其進(jìn)行序列化解析下來(lái),并配合正則表達式進(jìn)行清洗歌詞,如果不用正則表達式進(jìn)行清洗的話(huà),得到原創(chuàng )的數據如下所示(此處以趙雷的歌曲《成都》為例):
很明顯歌詞上面有歌詞呈現的時(shí)間,對于我們來(lái)說(shuō)其屬于雜質(zhì)信息,因此須要借助正則表達式進(jìn)行匹配。誠然,正則表達式并不是惟一的方式,小伙伴們也可以采取切塊的形式或則其他方式進(jìn)行數據清洗,在此就不贅言了。
得到歌詞以后便將其寫(xiě)入到文件中去,并存入到本地文件中,代碼如下:
現在只要我們運行程序,輸入歌手的ID以后,程序將手動(dòng)把該歌手的所唱歌曲的歌詞抓取出來(lái),并存到本地中。如本例中趙雷的ID是6731,輸入數字6731以后,趙雷的歌詞將會(huì )被抓取到,如下圖所示:
之后我們就可以在腳本程序的同一目錄下找到生成的歌詞文本,歌詞就被順利的爬取出來(lái)了。
相信你們對網(wǎng)易云歌詞爬取早已有了一定的認識了,不過(guò)easier said than down,小編建議你們動(dòng)手親自敲一下代碼,在實(shí)踐中你會(huì )學(xué)的更快,學(xué)的更多的。
這篇文章教會(huì )你們怎么采集網(wǎng)易云歌詞,那網(wǎng)易云歌曲怎么采集呢?且聽(tīng)小編下回分解~~ 查看全部
本文的總體思路如下:
找到正確的URL,獲取源碼;
利用bs4解析源碼,獲取歌曲名和歌曲ID;
調用網(wǎng)易云歌曲API,獲取歌詞;
將歌詞寫(xiě)入文件,并存入本地。
本文的目的是獲取網(wǎng)易云音樂(lè )的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以搖滾歌神趙雷為數據采集對象,專(zhuān)門(mén)采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類(lèi)推,下圖展示的是《成都》歌詞。
在這里相信有許多想要學(xué)習Python的朋友,大家可以+下Python學(xué)習分享褲:叁零肆+零伍零+柒玖玖,即可免費發(fā)放一整套系統的 Python學(xué)習教程!
一般來(lái)說(shuō),網(wǎng)頁(yè)上顯示的URL就可以寫(xiě)在程序中,運行程序以后就可以采集到我們想要的網(wǎng)頁(yè)源碼。But在網(wǎng)易云音樂(lè )網(wǎng)站中,這條路行不通,因為網(wǎng)頁(yè)中的URL是個(gè)假URL,真實(shí)的URL中是沒(méi)有#號的。廢話(huà)不多說(shuō),直接上代碼。
本文借助requests、bs4、json和re模塊來(lái)采集網(wǎng)易云音樂(lè )歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪(fǎng)問(wèn)。這里的get_html方式專(zhuān)門(mén)用于獲取源碼,通常我們也要做異常處理,未雨綢繆。
獲取到網(wǎng)頁(yè)源碼以后,分析源碼,發(fā)現歌曲的名子和ID藏的太深,縱里尋她千百度,發(fā)現她在源碼的294行,藏在
標簽下,如下圖所示:
接下來(lái)我們借助美麗的湯來(lái)獲取目標信息,直接上代碼,如下圖:
此處要注意獲取ID的時(shí)侯須要對link進(jìn)行切塊處理,得到的數字便是歌曲的ID;另外,歌曲名是通過(guò)get_text方式獲取到的,最后借助zip函數將歌曲名和ID一一對應并進(jìn)行返回。
得到ID以后便可以步入到內頁(yè)獲取歌詞了,但是URL還是不給力,如下圖:
雖然我們可以明白的看見(jiàn)網(wǎng)頁(yè)上的白紙黑字呈現的歌詞信息,但是我們在該URL下卻未能獲取到歌詞信息。小編通過(guò)抓包,找到了歌詞的URL,發(fā)現其是POST懇求還有一大堆看不懂的data,總之這個(gè)URL是不能為我們效力。那該點(diǎn)解呢?
莫慌,小編找到了網(wǎng)易云音樂(lè )的API,只要把歌曲的ID置于A(yíng)PI鏈接上便可以獲取到歌詞了,代碼如下:
在A(yíng)PI中歌詞信息是以json格式加載的,所以須要借助json將其進(jìn)行序列化解析下來(lái),并配合正則表達式進(jìn)行清洗歌詞,如果不用正則表達式進(jìn)行清洗的話(huà),得到原創(chuàng )的數據如下所示(此處以趙雷的歌曲《成都》為例):
很明顯歌詞上面有歌詞呈現的時(shí)間,對于我們來(lái)說(shuō)其屬于雜質(zhì)信息,因此須要借助正則表達式進(jìn)行匹配。誠然,正則表達式并不是惟一的方式,小伙伴們也可以采取切塊的形式或則其他方式進(jìn)行數據清洗,在此就不贅言了。
得到歌詞以后便將其寫(xiě)入到文件中去,并存入到本地文件中,代碼如下:
現在只要我們運行程序,輸入歌手的ID以后,程序將手動(dòng)把該歌手的所唱歌曲的歌詞抓取出來(lái),并存到本地中。如本例中趙雷的ID是6731,輸入數字6731以后,趙雷的歌詞將會(huì )被抓取到,如下圖所示:
之后我們就可以在腳本程序的同一目錄下找到生成的歌詞文本,歌詞就被順利的爬取出來(lái)了。
相信你們對網(wǎng)易云歌詞爬取早已有了一定的認識了,不過(guò)easier said than down,小編建議你們動(dòng)手親自敲一下代碼,在實(shí)踐中你會(huì )學(xué)的更快,學(xué)的更多的。
這篇文章教會(huì )你們怎么采集網(wǎng)易云歌詞,那網(wǎng)易云歌曲怎么采集呢?且聽(tīng)小編下回分解~~
報表開(kāi)發(fā)利器:phantomjs生成PDF ,Echarts圖片
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 270 次瀏覽 ? 2020-08-10 10:26
導航:
一. 關(guān)于phantomjs1.1 什么是phantomjs?
?。?)一個(gè)基于webkit內核的無(wú)頭瀏覽器,即沒(méi)有UI界面,即它就是一個(gè)瀏覽器,只是其內的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作須要程序設計實(shí)現。
?。?)提供javascript API接口,即通過(guò)編撰js程序可以直接與webkit內核交互,在此之上可以結合java語(yǔ)言等,通過(guò)java調用js等相關(guān)操作,從而解決了先前c/c++能夠比較好的基于webkit開(kāi)發(fā)優(yōu)質(zhì)采集器的限制。
?。?)提供windows、linux、mac等不同os的安裝使用包,也就是說(shuō)可以在不同平臺上二次開(kāi)發(fā)采集項目或是手動(dòng)項目測試等工作。
1.2 phantomjs常用API介紹
常用外置幾大對象
常用API
注意事項
使用總結 : 主要是java se+js+phantomjs的應用,
1.3 使用phantomjs 能做哪些?
生成的PDF基本還原了其原先的款式,圖片和文字分開(kāi)了,并非直接截圖;有生成PDF相關(guān)需求的,可以思索生成使用phantomjs 怎樣實(shí)現功能;本人有通過(guò)Html模板,生成Html頁(yè)面,然后將此頁(yè)面上傳至FastDfs服務(wù)器,然后通過(guò)返回的url直接生成此pdf,即完成了html頁(yè)面一致的pdf生成功能;
二. Windows下安裝 phantomjs2.1 概述2.1 下載并安裝phantomjs測試是否安裝成功:三. Linux下 安裝 phantomjs3.1 概述3.2 安裝過(guò)程如下:
進(jìn)入上面后可執行js命令,如果須要退出,則按 Ctrl+C 強制退出
解決英文亂碼(可選,可碰到此問(wèn)題再行解決)正常示例:(Windows上顯示正常如圖:)錯誤示例:(Linux上顯示英文亂碼如圖:)解決辦法:在Linux中執行命令:
yum install bitmap-fonts bitmap-fonts-cjk
執行此命令后,可能只是英文顯示下來(lái)了,數字還是會(huì )顯示空格,如果出現數字顯示空格,則把windows所有字體導出Linux中,見(jiàn)下邊。
導入字體:四. 利用Phantomjs生成Echarts圖片4.1 概述: 在Linux 下:
WIndows與Linux環(huán)境下的區別:①配置好環(huán)境變量,因為phantomjs的啟動(dòng)方法,windows是執行exe文件,linux不是,所以配好環(huán)境變量后java在本機測試與在Linux下無(wú)需做任何更改;②Phantomjs執行生成Echarts圖片時(shí),需要引用到 jquery.1.9.1.min.js ,echarts-convert.js, echarts.min.js 以及生成Echarts的js文件。這些js須要引用到,而當布署在Linux中時(shí),生成的js文件在jar包中,不一定能讀取到,我們可以通過(guò)代碼將js文件復制生成到j(luò )ar包同級目錄,然后通過(guò)路徑加載。路徑加載可以用如下代碼讀取并生成:
~~~java
/* 將模板生成到指定的位置 判定文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty(“user.dir”) + “\echarts-all.js”);
if (!echartsfile.exists()) {
FileUtil.file2file(“js/echarts-all.js”, System.getProperty(“user.dir”) + “\echarts-all.js”);
}
~~~
4.2 筆者實(shí)現思路:第二步:整理思路:生成須要生成的Echarts的js代碼:找到相關(guān)Echarts圖片模板: Echarts官網(wǎng)使用Framework以及其他技術(shù):將模板+數據生成一個(gè)最終js文件;使用Framework為例:將其他的三個(gè)js文件放在其他位置上,博主的做法是將這三個(gè)放在jar包目錄內,但是會(huì )存在phantomjs難以讀取和執行的情況(就是除開(kāi)phantomjs的代碼可以讀取到內容,但phantomjs的執行難以引用讀?。?。所以博主采取的是先讀取下來(lái),再講到j(luò )ar包外邊進(jìn)行引用;這樣通過(guò)路徑,在Linux下也可以讀取了;讀取代碼示例:
/* 將模板生成到指定的位置 判斷文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty("user.dir") + "\\echarts-all.js");
if (!echartsfile.exists()) {
FileUtil.file2file("js/echarts-all.js", System.getProperty("user.dir") + "\\echarts-all.js");
}
File jsfile = new File(outPathAndName);
if (!jsfile.exists()) {
FileUtil.string2File(outPathAndName, echartTemplate.getFileContent()); // 將js文件生成到指定的位置
}
File convertfile = new File(System.getProperty("user.dir") + "\\echarts-convert.js");
String echartsPath = System.getProperty("user.dir") + "\\echarts-convert.js";
if (!convertfile.exists()) {
FileUtil.file2file("js/echarts-convert.js", echartsPath);
}
File jqueryfile = new File(System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
if (!jqueryfile.exists()) {
FileUtil.file2file("js/jquery.1.9.1.min.js", System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
}
重點(diǎn)代碼:System.getProperty(“user.dir”) 為 Windows下或則Linux下的當前路徑 ,具體可百度其用法。
結合早已有的 echarts-convert.js 等文件+ 生成好的帶數據的Echarts.js 文件 和 Demo示例代碼可以生成出Echarts圖片了;我們可以將Echart圖片再上傳至Fastdfs等圖片服務(wù)器,就可以領(lǐng)到網(wǎng)路圖片url了;當然最后一步視業(yè)務(wù)需求而定;五. 利用Phantomjs生成PDF文檔(HTML轉為PDF)5.1 概述5.2 生成原理5.3 擴展思路六.利用Phantomjs+Poi.tl 生成Word文檔6.1 概述6.2 思路 查看全部
報表開(kāi)發(fā)利器:phantomjs生成網(wǎng)頁(yè)PDF ,Echarts報表實(shí)戰
導航:
一. 關(guān)于phantomjs1.1 什么是phantomjs?
?。?)一個(gè)基于webkit內核的無(wú)頭瀏覽器,即沒(méi)有UI界面,即它就是一個(gè)瀏覽器,只是其內的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作須要程序設計實(shí)現。
?。?)提供javascript API接口,即通過(guò)編撰js程序可以直接與webkit內核交互,在此之上可以結合java語(yǔ)言等,通過(guò)java調用js等相關(guān)操作,從而解決了先前c/c++能夠比較好的基于webkit開(kāi)發(fā)優(yōu)質(zhì)采集器的限制。
?。?)提供windows、linux、mac等不同os的安裝使用包,也就是說(shuō)可以在不同平臺上二次開(kāi)發(fā)采集項目或是手動(dòng)項目測試等工作。
1.2 phantomjs常用API介紹
常用外置幾大對象
常用API
注意事項
使用總結 : 主要是java se+js+phantomjs的應用,
1.3 使用phantomjs 能做哪些?
生成的PDF基本還原了其原先的款式,圖片和文字分開(kāi)了,并非直接截圖;有生成PDF相關(guān)需求的,可以思索生成使用phantomjs 怎樣實(shí)現功能;本人有通過(guò)Html模板,生成Html頁(yè)面,然后將此頁(yè)面上傳至FastDfs服務(wù)器,然后通過(guò)返回的url直接生成此pdf,即完成了html頁(yè)面一致的pdf生成功能;
二. Windows下安裝 phantomjs2.1 概述2.1 下載并安裝phantomjs測試是否安裝成功:三. Linux下 安裝 phantomjs3.1 概述3.2 安裝過(guò)程如下:
進(jìn)入上面后可執行js命令,如果須要退出,則按 Ctrl+C 強制退出
解決英文亂碼(可選,可碰到此問(wèn)題再行解決)正常示例:(Windows上顯示正常如圖:)錯誤示例:(Linux上顯示英文亂碼如圖:)解決辦法:在Linux中執行命令:
yum install bitmap-fonts bitmap-fonts-cjk
執行此命令后,可能只是英文顯示下來(lái)了,數字還是會(huì )顯示空格,如果出現數字顯示空格,則把windows所有字體導出Linux中,見(jiàn)下邊。
導入字體:四. 利用Phantomjs生成Echarts圖片4.1 概述: 在Linux 下:
WIndows與Linux環(huán)境下的區別:①配置好環(huán)境變量,因為phantomjs的啟動(dòng)方法,windows是執行exe文件,linux不是,所以配好環(huán)境變量后java在本機測試與在Linux下無(wú)需做任何更改;②Phantomjs執行生成Echarts圖片時(shí),需要引用到 jquery.1.9.1.min.js ,echarts-convert.js, echarts.min.js 以及生成Echarts的js文件。這些js須要引用到,而當布署在Linux中時(shí),生成的js文件在jar包中,不一定能讀取到,我們可以通過(guò)代碼將js文件復制生成到j(luò )ar包同級目錄,然后通過(guò)路徑加載。路徑加載可以用如下代碼讀取并生成:
~~~java
/* 將模板生成到指定的位置 判定文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty(“user.dir”) + “\echarts-all.js”);
if (!echartsfile.exists()) {
FileUtil.file2file(“js/echarts-all.js”, System.getProperty(“user.dir”) + “\echarts-all.js”);
}
~~~
4.2 筆者實(shí)現思路:第二步:整理思路:生成須要生成的Echarts的js代碼:找到相關(guān)Echarts圖片模板: Echarts官網(wǎng)使用Framework以及其他技術(shù):將模板+數據生成一個(gè)最終js文件;使用Framework為例:將其他的三個(gè)js文件放在其他位置上,博主的做法是將這三個(gè)放在jar包目錄內,但是會(huì )存在phantomjs難以讀取和執行的情況(就是除開(kāi)phantomjs的代碼可以讀取到內容,但phantomjs的執行難以引用讀?。?。所以博主采取的是先讀取下來(lái),再講到j(luò )ar包外邊進(jìn)行引用;這樣通過(guò)路徑,在Linux下也可以讀取了;讀取代碼示例:
/* 將模板生成到指定的位置 判斷文件是否存在,如果不存在則創(chuàng )建 */
File echartsfile = new File(System.getProperty("user.dir") + "\\echarts-all.js");
if (!echartsfile.exists()) {
FileUtil.file2file("js/echarts-all.js", System.getProperty("user.dir") + "\\echarts-all.js");
}
File jsfile = new File(outPathAndName);
if (!jsfile.exists()) {
FileUtil.string2File(outPathAndName, echartTemplate.getFileContent()); // 將js文件生成到指定的位置
}
File convertfile = new File(System.getProperty("user.dir") + "\\echarts-convert.js");
String echartsPath = System.getProperty("user.dir") + "\\echarts-convert.js";
if (!convertfile.exists()) {
FileUtil.file2file("js/echarts-convert.js", echartsPath);
}
File jqueryfile = new File(System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
if (!jqueryfile.exists()) {
FileUtil.file2file("js/jquery.1.9.1.min.js", System.getProperty("user.dir") + "\\jquery.1.9.1.min.js");
}
重點(diǎn)代碼:System.getProperty(“user.dir”) 為 Windows下或則Linux下的當前路徑 ,具體可百度其用法。
結合早已有的 echarts-convert.js 等文件+ 生成好的帶數據的Echarts.js 文件 和 Demo示例代碼可以生成出Echarts圖片了;我們可以將Echart圖片再上傳至Fastdfs等圖片服務(wù)器,就可以領(lǐng)到網(wǎng)路圖片url了;當然最后一步視業(yè)務(wù)需求而定;五. 利用Phantomjs生成PDF文檔(HTML轉為PDF)5.1 概述5.2 生成原理5.3 擴展思路六.利用Phantomjs+Poi.tl 生成Word文檔6.1 概述6.2 思路
Python丨scrapy爬取某急聘網(wǎng)手機APP發(fā)布信息
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 175 次瀏覽 ? 2020-08-10 08:51
過(guò)段時(shí)間要開(kāi)始找新工作了,爬取一些崗位信息來(lái)剖析一下吧。目前主流的急聘網(wǎng)站包括前程無(wú)憂(yōu)、智聯(lián)、BOSS直聘、拉勾等等。有段時(shí)間時(shí)間沒(méi)爬取手機APP了,這次寫(xiě)一個(gè)爬蟲(chóng)爬取前程無(wú)憂(yōu)手機APP崗位信息,其他急聘網(wǎng)站后續再更新補上……
所用工具(技術(shù)):
IDE:pycharm
Database:MySQL
抓包工具:Fiddler
爬蟲(chóng)框架:scrapy==1.5.0
信息抓?。簊crapy外置的Selector
Python學(xué)習資料或則須要代碼、視頻加Python學(xué)習群:960410445
2 APP抓包剖析
我們先來(lái)體會(huì )一下前程無(wú)憂(yōu)的APP,當我們在首頁(yè)輸入搜索關(guān)鍵詞點(diǎn)擊搜索然后APP都會(huì )跳轉到新的頁(yè)面,這個(gè)頁(yè)面我們暫且稱(chēng)之為一級頁(yè)面。一級頁(yè)面展示著(zhù)我們所想找查看的所有崗位列表。
當我們點(diǎn)擊其中一條崗位信息后,APP又會(huì )跳轉到一個(gè)新的頁(yè)面,我把這個(gè)頁(yè)面稱(chēng)之為二級頁(yè)面。二級頁(yè)面有我們須要的所有崗位信息,也是我們的主要采集目前頁(yè)面。
分析完頁(yè)面然后,接下來(lái)就可以對前程無(wú)憂(yōu)手機APP的懇求(request)和回復(response)進(jìn)行剖析了。本文所使用的抓包工具為Fiddler。
本文的目的是抓取前程無(wú)憂(yōu)APP上搜索某個(gè)關(guān)鍵詞時(shí)返回的所有急聘信息,本文以“Python”為例進(jìn)行說(shuō)明。APP上操作如下圖所示,輸入“Python”關(guān)鍵詞后,點(diǎn)擊搜索,隨后Fiddler抓取到4個(gè)數據包,如下所示:
事實(shí)上,當聽(tīng)到第2和第4個(gè)數據包的圖標時(shí),我們就應當會(huì )心一笑。這兩個(gè)圖標分別代表傳輸的是json和xml格式的數據,而好多web插口就是以這兩種格式來(lái)傳輸數據的,手機APP也不列外。選中第2個(gè)數據包,然后在右邊主窗口中查看,發(fā)現第二個(gè)數據包并沒(méi)有我們想要的數據。在瞧瞧第4個(gè)數據包,選中后在右邊窗體,可以看見(jiàn)以下內容:
右下角的內容不就是在手機上看見(jiàn)的急聘信息嗎,還是以XML的格式來(lái)傳輸的。我們將這個(gè)數據包的鏈接復制出來(lái):
keyword=Python&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
我們爬取的時(shí)侯肯定不會(huì )只爬取一個(gè)頁(yè)面的信息,我們在A(yíng)PP上把頁(yè)面往下滑,看看Fiddler會(huì )抓取到哪些數據包??从覉D:
手機屏幕往下滑動(dòng)后,Fiddler又抓取到兩個(gè)數據包,而且第二個(gè)數據包選中看再度發(fā)覺(jué)就是APP上新刷新的急聘信息,再把這個(gè)數據包的url鏈接復制出來(lái):
pageno=2&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
接下來(lái),我們比對一下前后兩個(gè)鏈接,分析其中的優(yōu)缺??梢钥闯?,除了“pageno”這個(gè)屬性外,其他都一樣。沒(méi)錯,就是在里面標紅的地方。第一個(gè)數據包鏈接中pageno值為1,第二個(gè)pageno值為2,這下翻頁(yè)的規律就一目了然了。
既然我們早已找到了APP翻頁(yè)的懇求鏈接規律,我們就可以在爬蟲(chóng)中通過(guò)循環(huán)形參給pageno,實(shí)現模擬翻頁(yè)的功能。
我們再?lài)L試一下改變搜索的關(guān)鍵詞瞧瞧鏈接有哪些變化,以“java”為關(guān)鍵詞,抓取到的數據包為:
keyword=java&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比后發(fā)覺(jué),鏈接中也只有keyword的值不一樣,而且值就是我們在自己輸入的關(guān)鍵詞。所以在爬蟲(chóng)中,我們完全可以通過(guò)字符串拼接來(lái)實(shí)現輸入關(guān)鍵詞模擬,從而采集不同類(lèi)型的急聘信息。同理,你可以對求職地點(diǎn)等信息的規律進(jìn)行找尋,本文不在表述。
解決翻頁(yè)功能然后,我們再去探究一下數據包中XML上面的內容。我們把里面的第一個(gè)鏈接復制到瀏覽器上打開(kāi),打開(kāi)后畫(huà)面如下:
這樣看著(zhù)就舒服多了。通過(guò)仔細觀(guān)察我們會(huì )發(fā)覺(jué),APP上每一條急聘信息都對應著(zhù)一個(gè)標簽,每一個(gè)上面都有一個(gè)標簽,里面有一個(gè)id標示著(zhù)一個(gè)崗位。例如前面第一條崗位是109384390,第二條崗位是109381483,記住這個(gè)id,后面會(huì )用到。
事實(shí)上,接下來(lái),我們點(diǎn)擊第一條急聘信息,進(jìn)入二級頁(yè)面。這時(shí)候,Fiddler會(huì )采集到APP剛發(fā)送的數據包,點(diǎn)擊其中的xml數據包,發(fā)現就是APP上剛刷新的頁(yè)面信息。我們將數據包的url鏈接復制下來(lái):
jobid=109384390&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
如法炮制點(diǎn)開(kāi)一級頁(yè)面中列表的第二條急聘,然后從Fiddler中復制出對應數據包的url鏈接:
jobid=109381483&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比前面兩個(gè)鏈接,發(fā)現規律沒(méi)?沒(méi)錯,就是jobid不同,其他都一樣。這個(gè)jobid就是我們在一級頁(yè)面的xml中發(fā)覺(jué)的jobid。由此,我們就可以在一級頁(yè)面中抓取出jobid來(lái)構造出二級頁(yè)面的url鏈接,然后采集出我們所須要的所有信息。整個(gè)爬蟲(chóng)邏輯就清晰了:
構造一級頁(yè)面初始url->采集jobid->構造二級頁(yè)面url->抓取崗位信息->通過(guò)循環(huán)模擬翻頁(yè)獲取下一頁(yè)面的url。
好了,分析工作完成了,開(kāi)始動(dòng)手寫(xiě)爬蟲(chóng)了。
3 編寫(xiě)爬蟲(chóng)
本文編撰前程無(wú)憂(yōu)手機APP網(wǎng)路爬蟲(chóng)用的是Scrapy框架,下載好scrapy第三方包后,通過(guò)命令行創(chuàng )建爬蟲(chóng)項目:
scrapy startproject job_spider .
job_spider就是我們本次爬蟲(chóng)項目的項目名稱(chēng),在項目名前面有一個(gè)“.”,這個(gè)點(diǎn)可有可無(wú),區別是在當前文件之間創(chuàng )建項目還是創(chuàng )建一個(gè)與項目名同名的文件之后在文件內創(chuàng )建項目。
創(chuàng )建好項目后,繼續創(chuàng )建一個(gè)爬蟲(chóng),專(zhuān)用于爬取前程無(wú)憂(yōu)發(fā)布的急聘信息。創(chuàng )建爬蟲(chóng)命名如下:
scrapy genspider qcwySpider
注意:如果你在創(chuàng )建爬蟲(chóng)項目的時(shí)侯沒(méi)有在項目名前面加“.”,請先步入項目文件夾以后再運行命令創(chuàng )建爬蟲(chóng)。
通過(guò)pycharm打開(kāi)剛創(chuàng )建好的爬蟲(chóng)項目,左側目錄樹(shù)結構如下:
在開(kāi)始一切爬蟲(chóng)工作之前,先打開(kāi)settings.py文件,然后取消“ROBOTSTXT_OBEY = False”這一行的注釋?zhuān)⑵渲蹈臑镕alse。
# Obey robots.txt rulesROBOTSTXT_OBEY = False
完成上述更改后,打開(kāi)spiders包下的qcwySpider.py,初始代碼如下:
這是scrapy為我們搭好的框架,我們只須要在這個(gè)基礎起來(lái)建立我們的爬蟲(chóng)即可。
首先我們須要在類(lèi)中添加一些屬性,例如搜索關(guān)鍵詞keyword、起始頁(yè)、想要爬取得最大頁(yè)數,同時(shí)也須要設置headers進(jìn)行簡(jiǎn)單的反爬。另外,starturl也須要重新設置為第一頁(yè)的url。更改后代碼如下:
然后開(kāi)始編撰parse方式爬取一級頁(yè)面,在一級頁(yè)面中,我們主要邏輯是通過(guò)循環(huán)實(shí)現APP中屏幕下降更新,我們用前面代碼中的current_page來(lái)標示當前頁(yè)頁(yè)腳,每次循環(huán)后,current_page加1,然后構造新的url,通過(guò)反彈parse方式爬取下一頁(yè)。另外,我們還須要在parse方式中在一級頁(yè)面中采集出jobid,并構造出二級頁(yè)面的,回調實(shí)現二級頁(yè)面信息采集的parse_job方式。parse方式代碼如下:
為了便捷進(jìn)行調試,我們在項目的jobSpider目錄下創(chuàng )建一個(gè)main.py文件,用于啟動(dòng)爬蟲(chóng),每次啟動(dòng)爬蟲(chóng)時(shí),運行該文件即可。內容如下:
二級頁(yè)面信息采集功能在parse_job方式中實(shí)現,因為所有我們須要抓取的信息都在xml中,我們直接用scrapy自帶的selector提取下來(lái)就可以了,不過(guò)在提取之前,我們須要先定義好Item拿來(lái)儲存我們采集好的數據。打開(kāi)items.py文件,編寫(xiě)一個(gè)Item類(lèi),輸入以下代碼:
上面每一個(gè)item都與一個(gè)xml標簽對應,用于儲存一條信息。在qcwyJobsItem類(lèi)的最后,定義了一個(gè)do_insert方式,該方式用于生產(chǎn)將item中所有信息儲存數據庫的insert句子,之所以在items鐵塊中生成這個(gè)insert句子,是因為日后若果有了多個(gè)爬蟲(chóng),有多個(gè)item類(lèi)以后,在pipelines模塊中,可以針對不同的item插入數據庫,使本項目具有更強的可擴展性。你也可以將所有與插入數據庫有關(guān)的代碼都寫(xiě)在pipelines。
然后編撰parse_job方式:
完成上述代碼后,信息采集部分就完成了。接下來(lái)繼續寫(xiě)信息儲存功能,這一功能在pipelines.py中完成。
編寫(xiě)完pipelines.py后,打開(kāi)settings.py文件,將剛寫(xiě)好的MysqlTwistedPipline類(lèi)配置到項目設置文件中:
順便也把數據庫配置好:
數據庫配置你也可以之間嵌入到MysqlTwistedPipline類(lèi)中,不過(guò)我習慣于把這種專(zhuān)屬的數據庫信息寫(xiě)在配置文件中。
最后,只差一步,建數據庫、建數據表。部分表結構如下圖所示:
完成上述所有內容以后,就可以運行爬蟲(chóng)開(kāi)始采集數據了。采集的數據如下圖所示:
4 總結
整個(gè)過(guò)程出來(lái),感覺(jué)前程無(wú)憂(yōu)網(wǎng)APP爬取要比網(wǎng)頁(yè)爬取容易一些(似乎好多網(wǎng)站都這樣)?;仡櫿麄€(gè)流程,其實(shí)代碼中還有眾多細節尚可改進(jìn)建立,例如還可以在構造鏈接時(shí)加上求職地點(diǎn)等。本博文重在對整個(gè)爬蟲(chóng)過(guò)程的邏輯剖析和介紹APP的基本爬取方式,博文中省略了部份代碼,若須要完整代碼,請在我的github中獲取,后續將繼續更新其他急聘網(wǎng)站的爬蟲(chóng)。返回搜狐,查看更多 查看全部
1 引言
過(guò)段時(shí)間要開(kāi)始找新工作了,爬取一些崗位信息來(lái)剖析一下吧。目前主流的急聘網(wǎng)站包括前程無(wú)憂(yōu)、智聯(lián)、BOSS直聘、拉勾等等。有段時(shí)間時(shí)間沒(méi)爬取手機APP了,這次寫(xiě)一個(gè)爬蟲(chóng)爬取前程無(wú)憂(yōu)手機APP崗位信息,其他急聘網(wǎng)站后續再更新補上……
所用工具(技術(shù)):
IDE:pycharm
Database:MySQL
抓包工具:Fiddler
爬蟲(chóng)框架:scrapy==1.5.0
信息抓?。簊crapy外置的Selector
Python學(xué)習資料或則須要代碼、視頻加Python學(xué)習群:960410445
2 APP抓包剖析
我們先來(lái)體會(huì )一下前程無(wú)憂(yōu)的APP,當我們在首頁(yè)輸入搜索關(guān)鍵詞點(diǎn)擊搜索然后APP都會(huì )跳轉到新的頁(yè)面,這個(gè)頁(yè)面我們暫且稱(chēng)之為一級頁(yè)面。一級頁(yè)面展示著(zhù)我們所想找查看的所有崗位列表。

當我們點(diǎn)擊其中一條崗位信息后,APP又會(huì )跳轉到一個(gè)新的頁(yè)面,我把這個(gè)頁(yè)面稱(chēng)之為二級頁(yè)面。二級頁(yè)面有我們須要的所有崗位信息,也是我們的主要采集目前頁(yè)面。

分析完頁(yè)面然后,接下來(lái)就可以對前程無(wú)憂(yōu)手機APP的懇求(request)和回復(response)進(jìn)行剖析了。本文所使用的抓包工具為Fiddler。
本文的目的是抓取前程無(wú)憂(yōu)APP上搜索某個(gè)關(guān)鍵詞時(shí)返回的所有急聘信息,本文以“Python”為例進(jìn)行說(shuō)明。APP上操作如下圖所示,輸入“Python”關(guān)鍵詞后,點(diǎn)擊搜索,隨后Fiddler抓取到4個(gè)數據包,如下所示:

事實(shí)上,當聽(tīng)到第2和第4個(gè)數據包的圖標時(shí),我們就應當會(huì )心一笑。這兩個(gè)圖標分別代表傳輸的是json和xml格式的數據,而好多web插口就是以這兩種格式來(lái)傳輸數據的,手機APP也不列外。選中第2個(gè)數據包,然后在右邊主窗口中查看,發(fā)現第二個(gè)數據包并沒(méi)有我們想要的數據。在瞧瞧第4個(gè)數據包,選中后在右邊窗體,可以看見(jiàn)以下內容:

右下角的內容不就是在手機上看見(jiàn)的急聘信息嗎,還是以XML的格式來(lái)傳輸的。我們將這個(gè)數據包的鏈接復制出來(lái):
keyword=Python&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
我們爬取的時(shí)侯肯定不會(huì )只爬取一個(gè)頁(yè)面的信息,我們在A(yíng)PP上把頁(yè)面往下滑,看看Fiddler會(huì )抓取到哪些數據包??从覉D:

手機屏幕往下滑動(dòng)后,Fiddler又抓取到兩個(gè)數據包,而且第二個(gè)數據包選中看再度發(fā)覺(jué)就是APP上新刷新的急聘信息,再把這個(gè)數據包的url鏈接復制出來(lái):
pageno=2&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
接下來(lái),我們比對一下前后兩個(gè)鏈接,分析其中的優(yōu)缺??梢钥闯?,除了“pageno”這個(gè)屬性外,其他都一樣。沒(méi)錯,就是在里面標紅的地方。第一個(gè)數據包鏈接中pageno值為1,第二個(gè)pageno值為2,這下翻頁(yè)的規律就一目了然了。
既然我們早已找到了APP翻頁(yè)的懇求鏈接規律,我們就可以在爬蟲(chóng)中通過(guò)循環(huán)形參給pageno,實(shí)現模擬翻頁(yè)的功能。
我們再?lài)L試一下改變搜索的關(guān)鍵詞瞧瞧鏈接有哪些變化,以“java”為關(guān)鍵詞,抓取到的數據包為:
keyword=java&keywordtype=2&jobarea=000000&searchid=&famoustype=&pageno=1&pagesize=30&accountid=&key=&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比后發(fā)覺(jué),鏈接中也只有keyword的值不一樣,而且值就是我們在自己輸入的關(guān)鍵詞。所以在爬蟲(chóng)中,我們完全可以通過(guò)字符串拼接來(lái)實(shí)現輸入關(guān)鍵詞模擬,從而采集不同類(lèi)型的急聘信息。同理,你可以對求職地點(diǎn)等信息的規律進(jìn)行找尋,本文不在表述。
解決翻頁(yè)功能然后,我們再去探究一下數據包中XML上面的內容。我們把里面的第一個(gè)鏈接復制到瀏覽器上打開(kāi),打開(kāi)后畫(huà)面如下:

這樣看著(zhù)就舒服多了。通過(guò)仔細觀(guān)察我們會(huì )發(fā)覺(jué),APP上每一條急聘信息都對應著(zhù)一個(gè)標簽,每一個(gè)上面都有一個(gè)標簽,里面有一個(gè)id標示著(zhù)一個(gè)崗位。例如前面第一條崗位是109384390,第二條崗位是109381483,記住這個(gè)id,后面會(huì )用到。
事實(shí)上,接下來(lái),我們點(diǎn)擊第一條急聘信息,進(jìn)入二級頁(yè)面。這時(shí)候,Fiddler會(huì )采集到APP剛發(fā)送的數據包,點(diǎn)擊其中的xml數據包,發(fā)現就是APP上剛刷新的頁(yè)面信息。我們將數據包的url鏈接復制下來(lái):
jobid=109384390&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
如法炮制點(diǎn)開(kāi)一級頁(yè)面中列表的第二條急聘,然后從Fiddler中復制出對應數據包的url鏈接:
jobid=109381483&accountid=&key=&from=searchjoblist&jobtype=0100&productname=51job&partner=8785419449a858b3314197b60d54d9c6&uuid=6b21f77c7af3aa83a5c636792ba087c2&version=845&guid=bbb37e8f266b9de9e2a9fbe3bb81c3d0
對比前面兩個(gè)鏈接,發(fā)現規律沒(méi)?沒(méi)錯,就是jobid不同,其他都一樣。這個(gè)jobid就是我們在一級頁(yè)面的xml中發(fā)覺(jué)的jobid。由此,我們就可以在一級頁(yè)面中抓取出jobid來(lái)構造出二級頁(yè)面的url鏈接,然后采集出我們所須要的所有信息。整個(gè)爬蟲(chóng)邏輯就清晰了:
構造一級頁(yè)面初始url->采集jobid->構造二級頁(yè)面url->抓取崗位信息->通過(guò)循環(huán)模擬翻頁(yè)獲取下一頁(yè)面的url。
好了,分析工作完成了,開(kāi)始動(dòng)手寫(xiě)爬蟲(chóng)了。
3 編寫(xiě)爬蟲(chóng)
本文編撰前程無(wú)憂(yōu)手機APP網(wǎng)路爬蟲(chóng)用的是Scrapy框架,下載好scrapy第三方包后,通過(guò)命令行創(chuàng )建爬蟲(chóng)項目:
scrapy startproject job_spider .
job_spider就是我們本次爬蟲(chóng)項目的項目名稱(chēng),在項目名前面有一個(gè)“.”,這個(gè)點(diǎn)可有可無(wú),區別是在當前文件之間創(chuàng )建項目還是創(chuàng )建一個(gè)與項目名同名的文件之后在文件內創(chuàng )建項目。
創(chuàng )建好項目后,繼續創(chuàng )建一個(gè)爬蟲(chóng),專(zhuān)用于爬取前程無(wú)憂(yōu)發(fā)布的急聘信息。創(chuàng )建爬蟲(chóng)命名如下:
scrapy genspider qcwySpider
注意:如果你在創(chuàng )建爬蟲(chóng)項目的時(shí)侯沒(méi)有在項目名前面加“.”,請先步入項目文件夾以后再運行命令創(chuàng )建爬蟲(chóng)。
通過(guò)pycharm打開(kāi)剛創(chuàng )建好的爬蟲(chóng)項目,左側目錄樹(shù)結構如下:

在開(kāi)始一切爬蟲(chóng)工作之前,先打開(kāi)settings.py文件,然后取消“ROBOTSTXT_OBEY = False”這一行的注釋?zhuān)⑵渲蹈臑镕alse。
# Obey robots.txt rulesROBOTSTXT_OBEY = False
完成上述更改后,打開(kāi)spiders包下的qcwySpider.py,初始代碼如下:

這是scrapy為我們搭好的框架,我們只須要在這個(gè)基礎起來(lái)建立我們的爬蟲(chóng)即可。
首先我們須要在類(lèi)中添加一些屬性,例如搜索關(guān)鍵詞keyword、起始頁(yè)、想要爬取得最大頁(yè)數,同時(shí)也須要設置headers進(jìn)行簡(jiǎn)單的反爬。另外,starturl也須要重新設置為第一頁(yè)的url。更改后代碼如下:

然后開(kāi)始編撰parse方式爬取一級頁(yè)面,在一級頁(yè)面中,我們主要邏輯是通過(guò)循環(huán)實(shí)現APP中屏幕下降更新,我們用前面代碼中的current_page來(lái)標示當前頁(yè)頁(yè)腳,每次循環(huán)后,current_page加1,然后構造新的url,通過(guò)反彈parse方式爬取下一頁(yè)。另外,我們還須要在parse方式中在一級頁(yè)面中采集出jobid,并構造出二級頁(yè)面的,回調實(shí)現二級頁(yè)面信息采集的parse_job方式。parse方式代碼如下:

為了便捷進(jìn)行調試,我們在項目的jobSpider目錄下創(chuàng )建一個(gè)main.py文件,用于啟動(dòng)爬蟲(chóng),每次啟動(dòng)爬蟲(chóng)時(shí),運行該文件即可。內容如下:

二級頁(yè)面信息采集功能在parse_job方式中實(shí)現,因為所有我們須要抓取的信息都在xml中,我們直接用scrapy自帶的selector提取下來(lái)就可以了,不過(guò)在提取之前,我們須要先定義好Item拿來(lái)儲存我們采集好的數據。打開(kāi)items.py文件,編寫(xiě)一個(gè)Item類(lèi),輸入以下代碼:

上面每一個(gè)item都與一個(gè)xml標簽對應,用于儲存一條信息。在qcwyJobsItem類(lèi)的最后,定義了一個(gè)do_insert方式,該方式用于生產(chǎn)將item中所有信息儲存數據庫的insert句子,之所以在items鐵塊中生成這個(gè)insert句子,是因為日后若果有了多個(gè)爬蟲(chóng),有多個(gè)item類(lèi)以后,在pipelines模塊中,可以針對不同的item插入數據庫,使本項目具有更強的可擴展性。你也可以將所有與插入數據庫有關(guān)的代碼都寫(xiě)在pipelines。
然后編撰parse_job方式:

完成上述代碼后,信息采集部分就完成了。接下來(lái)繼續寫(xiě)信息儲存功能,這一功能在pipelines.py中完成。

編寫(xiě)完pipelines.py后,打開(kāi)settings.py文件,將剛寫(xiě)好的MysqlTwistedPipline類(lèi)配置到項目設置文件中:

順便也把數據庫配置好:

數據庫配置你也可以之間嵌入到MysqlTwistedPipline類(lèi)中,不過(guò)我習慣于把這種專(zhuān)屬的數據庫信息寫(xiě)在配置文件中。
最后,只差一步,建數據庫、建數據表。部分表結構如下圖所示:

完成上述所有內容以后,就可以運行爬蟲(chóng)開(kāi)始采集數據了。采集的數據如下圖所示:

4 總結
整個(gè)過(guò)程出來(lái),感覺(jué)前程無(wú)憂(yōu)網(wǎng)APP爬取要比網(wǎng)頁(yè)爬取容易一些(似乎好多網(wǎng)站都這樣)?;仡櫿麄€(gè)流程,其實(shí)代碼中還有眾多細節尚可改進(jìn)建立,例如還可以在構造鏈接時(shí)加上求職地點(diǎn)等。本博文重在對整個(gè)爬蟲(chóng)過(guò)程的邏輯剖析和介紹APP的基本爬取方式,博文中省略了部份代碼,若須要完整代碼,請在我的github中獲取,后續將繼續更新其他急聘網(wǎng)站的爬蟲(chóng)。返回搜狐,查看更多
Python爬蟲(chóng) 百度地圖搜索數據采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 358 次瀏覽 ? 2020-08-10 06:51
趁空閑時(shí)間用Python來(lái)簡(jiǎn)單剖析制做一個(gè)簡(jiǎn)單的爬蟲(chóng)小腳本。
三個(gè)參數主要考慮的,一個(gè)是地理位置,一個(gè)是關(guān)鍵詞,一個(gè)是頁(yè)數。在抓包的過(guò)程中對“頁(yè)數”這個(gè)參數苦惱了好久,一直沒(méi)看明白,后面仔細對比才找到門(mén)道。
先談?wù)劦乩砦恢茫?br />
需要按指定地址搜索的時(shí)侯會(huì )須要一個(gè)叫City_Code 的參數,輸入搜索的時(shí)侯可以爬取到,輸入后有上述的幾種情況,不存在會(huì )強制要求你重新輸入,如果輸入“廣東”就會(huì )定位在廣州省內,不過(guò)實(shí)際搜索關(guān)鍵詞的時(shí)侯頁(yè)面并不會(huì )顯示海南所有的結果,而是須要你做二次選擇。
在百度的開(kāi)發(fā)平臺有城市代碼可以直接下載,不過(guò)并不完整,有須要的可以自行下載查閱
parameter = {
"newmap": "1",
"reqflag": "pcmap",
"biz": "1",
"from": "webmap",
"da_par": "direct",
"pcevaname": "pc4.1",
"qt": "con",
"c": City_Code, # 城市代碼
"wd": key_word, # 搜索關(guān)鍵詞
"wd2": "",
"pn": page, # 頁(yè)數
"nn": page * 10,
"db": "0",
"sug": "0",
"addr": "0",
"da_src": "pcmappg.poi.page",
"on_gel": "1",
"src": "7",
"gr": "3",
"l": "12",
"tn": "B_NORMAL_MAP",
# "u_loc": "12621219.536556,2630747.285024",
"ie": "utf-8",
# "b": "(11845157.18,3047692.2;11922085.18,3073932.2)", #這個(gè)應該是地理位置坐標,可以忽略
"t": "1468896652886"
}
頁(yè)數的參數有兩個(gè),一個(gè)是"pn",另外一個(gè)是"nn",沒(méi)搞明白三者之間的關(guān)系;
pn=0,nn=0 第一頁(yè)
pn=1,nn=10 第二頁(yè)
pn=2,nn=20 第三頁(yè)
pn=3,nn=30 第四頁(yè)
"nn"參數在調試過(guò)程中試過(guò)固定的話(huà)并且返回的數據是一樣的。
<p> url = 'http://map.baidu.com/'
htm = requests.get(url, params=parameter)
htm = htm.text.encode('latin-1').decode('unicode_escape') # 轉碼
pattern = r'(? 查看全部
之前在網(wǎng)上聽(tīng)到有留傳VBA編撰的版本,不過(guò)參數固定,通用性并不強.
趁空閑時(shí)間用Python來(lái)簡(jiǎn)單剖析制做一個(gè)簡(jiǎn)單的爬蟲(chóng)小腳本。
三個(gè)參數主要考慮的,一個(gè)是地理位置,一個(gè)是關(guān)鍵詞,一個(gè)是頁(yè)數。在抓包的過(guò)程中對“頁(yè)數”這個(gè)參數苦惱了好久,一直沒(méi)看明白,后面仔細對比才找到門(mén)道。
先談?wù)劦乩砦恢茫?br />
需要按指定地址搜索的時(shí)侯會(huì )須要一個(gè)叫City_Code 的參數,輸入搜索的時(shí)侯可以爬取到,輸入后有上述的幾種情況,不存在會(huì )強制要求你重新輸入,如果輸入“廣東”就會(huì )定位在廣州省內,不過(guò)實(shí)際搜索關(guān)鍵詞的時(shí)侯頁(yè)面并不會(huì )顯示海南所有的結果,而是須要你做二次選擇。
在百度的開(kāi)發(fā)平臺有城市代碼可以直接下載,不過(guò)并不完整,有須要的可以自行下載查閱
parameter = {
"newmap": "1",
"reqflag": "pcmap",
"biz": "1",
"from": "webmap",
"da_par": "direct",
"pcevaname": "pc4.1",
"qt": "con",
"c": City_Code, # 城市代碼
"wd": key_word, # 搜索關(guān)鍵詞
"wd2": "",
"pn": page, # 頁(yè)數
"nn": page * 10,
"db": "0",
"sug": "0",
"addr": "0",
"da_src": "pcmappg.poi.page",
"on_gel": "1",
"src": "7",
"gr": "3",
"l": "12",
"tn": "B_NORMAL_MAP",
# "u_loc": "12621219.536556,2630747.285024",
"ie": "utf-8",
# "b": "(11845157.18,3047692.2;11922085.18,3073932.2)", #這個(gè)應該是地理位置坐標,可以忽略
"t": "1468896652886"
}
頁(yè)數的參數有兩個(gè),一個(gè)是"pn",另外一個(gè)是"nn",沒(méi)搞明白三者之間的關(guān)系;
pn=0,nn=0 第一頁(yè)
pn=1,nn=10 第二頁(yè)
pn=2,nn=20 第三頁(yè)
pn=3,nn=30 第四頁(yè)
"nn"參數在調試過(guò)程中試過(guò)固定的話(huà)并且返回的數據是一樣的。
<p> url = 'http://map.baidu.com/'
htm = requests.get(url, params=parameter)
htm = htm.text.encode('latin-1').decode('unicode_escape') # 轉碼
pattern = r'(?
新榜陌陌文章抓取客戶(hù)端(APSpider)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 160 次瀏覽 ? 2020-08-10 06:25
這是曾經(jīng)給新媒體營(yíng)運朋友寫(xiě)的爬蟲(chóng)軟件,用了一段時(shí)間就沒(méi)用了(唉、氣死我了)。
目前只抓取了新榜的日榜(周榜、月榜類(lèi)似,換下地址即可)下,各行業(yè)的前50個(gè)公眾號下的7天熱門(mén)文章和最新發(fā)布文章
如下所示:
技術(shù)構架:nw.jsjqueryelement-ui
為什么選用nw.js呢?嗯,先入為主吧,electron也很不錯(改下入口即可使用),為什么不用大名鼎鼎的python呢?爬蟲(chóng)框架而且一堆堆,還是個(gè)人習慣使然,用慣了js,操作網(wǎng)頁(yè)簡(jiǎn)直得心應手,天生絕配!在此并不證實(shí)python,個(gè)人也比較喜歡(最近在研究深度學(xué)習架構),只是認為爬這種網(wǎng)頁(yè),還用不著(zhù)它。
有一個(gè)關(guān)鍵點(diǎn),在網(wǎng)頁(yè)中,想操作iframe中的網(wǎng)頁(yè),是不容許跨域的,而nw.js容許這樣操作,真是好?。。?!
安裝步驟下載nw.js ,根據自己系統下載相應版本即可,官網(wǎng): ,若自己須要二次開(kāi)發(fā),請下載SDK版本,方可開(kāi)啟debug,使用方式詳見(jiàn)官網(wǎng),不再探討克隆APSpider,復制到nw.js目錄,啟動(dòng)cmd,打開(kāi)到當前目錄,執行 npm install 安裝依賴(lài)啟動(dòng)nw.exe 就可以使用啦使用說(shuō)明考慮完整性,本客戶(hù)端在讀取到公眾號列表及文章列表時(shí),直接儲存在article下的目錄文件中,若須要將數據儲存至數據庫,請更改assest\utils\common.js中的Ap.request.ajax方式,將log函數注釋?zhuān)瑢⑾逻叡蛔⑨尩拇a恢復即可,然后在app\config.js中配置pushStateAPI(即前端接收數據API)為自己的數據插口即可因為新榜在公眾號詳盡頁(yè)面設置了登陸權限(如:),
只有登陸后可訪(fǎng)問(wèn),并且獲取公眾號文章的插口: ,
也是帶了安全校準數組,所以登陸是必須要走的過(guò)程,所以點(diǎn)擊登陸后,程序打開(kāi)登陸頁(yè)面,并獲取二維碼,如圖:
用自己的陌陌掃一掃,授權登陸即可,程序手動(dòng)步入公眾號列表:
選擇行業(yè),點(diǎn)擊開(kāi)始即可,程序將獲取所選行業(yè)下公眾號的熱門(mén)文章及最新發(fā)布文章,并儲存至文件中
最初的版本是一鍵獲取全部行業(yè)的文章,后面想想,還是自己想獲取什么行業(yè)的就獲取什么行業(yè)的
這是我的后臺療效:
其他新榜的所有ajax都帶有安全校準數組和cookie,cookie倒是好辦,登錄后獲取cookie儲存上去,帶到ajax的懇求頭中即可,至于校準數組,著(zhù)實(shí)費了一些時(shí)間,這個(gè)不再這兒闡述破解方式,有時(shí)間我會(huì )在csdn中寫(xiě)寫(xiě)破解的思路。關(guān)鍵詞搜索還沒(méi)做完,有時(shí)間補上。原本計劃把微博、簡(jiǎn)書(shū)等一并爬了,忙于其他事務(wù),就落下了。非常謝謝您的支持
擼碼不易,如果對你有所幫助,歡迎您的贊賞!微信贊賞碼: 查看全部
源碼下載請至
這是曾經(jīng)給新媒體營(yíng)運朋友寫(xiě)的爬蟲(chóng)軟件,用了一段時(shí)間就沒(méi)用了(唉、氣死我了)。
目前只抓取了新榜的日榜(周榜、月榜類(lèi)似,換下地址即可)下,各行業(yè)的前50個(gè)公眾號下的7天熱門(mén)文章和最新發(fā)布文章
如下所示:

技術(shù)構架:nw.jsjqueryelement-ui
為什么選用nw.js呢?嗯,先入為主吧,electron也很不錯(改下入口即可使用),為什么不用大名鼎鼎的python呢?爬蟲(chóng)框架而且一堆堆,還是個(gè)人習慣使然,用慣了js,操作網(wǎng)頁(yè)簡(jiǎn)直得心應手,天生絕配!在此并不證實(shí)python,個(gè)人也比較喜歡(最近在研究深度學(xué)習架構),只是認為爬這種網(wǎng)頁(yè),還用不著(zhù)它。
有一個(gè)關(guān)鍵點(diǎn),在網(wǎng)頁(yè)中,想操作iframe中的網(wǎng)頁(yè),是不容許跨域的,而nw.js容許這樣操作,真是好?。。?!
安裝步驟下載nw.js ,根據自己系統下載相應版本即可,官網(wǎng): ,若自己須要二次開(kāi)發(fā),請下載SDK版本,方可開(kāi)啟debug,使用方式詳見(jiàn)官網(wǎng),不再探討克隆APSpider,復制到nw.js目錄,啟動(dòng)cmd,打開(kāi)到當前目錄,執行 npm install 安裝依賴(lài)啟動(dòng)nw.exe 就可以使用啦使用說(shuō)明考慮完整性,本客戶(hù)端在讀取到公眾號列表及文章列表時(shí),直接儲存在article下的目錄文件中,若須要將數據儲存至數據庫,請更改assest\utils\common.js中的Ap.request.ajax方式,將log函數注釋?zhuān)瑢⑾逻叡蛔⑨尩拇a恢復即可,然后在app\config.js中配置pushStateAPI(即前端接收數據API)為自己的數據插口即可因為新榜在公眾號詳盡頁(yè)面設置了登陸權限(如:),
只有登陸后可訪(fǎng)問(wèn),并且獲取公眾號文章的插口: ,
也是帶了安全校準數組,所以登陸是必須要走的過(guò)程,所以點(diǎn)擊登陸后,程序打開(kāi)登陸頁(yè)面,并獲取二維碼,如圖:

用自己的陌陌掃一掃,授權登陸即可,程序手動(dòng)步入公眾號列表:

選擇行業(yè),點(diǎn)擊開(kāi)始即可,程序將獲取所選行業(yè)下公眾號的熱門(mén)文章及最新發(fā)布文章,并儲存至文件中
最初的版本是一鍵獲取全部行業(yè)的文章,后面想想,還是自己想獲取什么行業(yè)的就獲取什么行業(yè)的

這是我的后臺療效:


其他新榜的所有ajax都帶有安全校準數組和cookie,cookie倒是好辦,登錄后獲取cookie儲存上去,帶到ajax的懇求頭中即可,至于校準數組,著(zhù)實(shí)費了一些時(shí)間,這個(gè)不再這兒闡述破解方式,有時(shí)間我會(huì )在csdn中寫(xiě)寫(xiě)破解的思路。關(guān)鍵詞搜索還沒(méi)做完,有時(shí)間補上。原本計劃把微博、簡(jiǎn)書(shū)等一并爬了,忙于其他事務(wù),就落下了。非常謝謝您的支持
擼碼不易,如果對你有所幫助,歡迎您的贊賞!微信贊賞碼:
SEM數據剖析讀懂這兩點(diǎn),效果逐步提高!
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 162 次瀏覽 ? 2020-08-10 02:22
3、如果上面兩種因為各類(lèi)緣由沒(méi)辦法短時(shí)間內學(xué)會(huì )的話(huà),筆者建議你可以用最笨的方式,就是人工的去統計,筆者有一個(gè)顧客就是這樣的,他對于每位咨詢(xún)過(guò)他的顧客,都會(huì )主動(dòng)尋問(wèn)對方搜索的關(guān)鍵詞,以及搜索的哪些平臺,雖然太笨,但能堅持出來(lái),也是挺實(shí)用的。
以上3種基本算是全部的統計模式了,還有一些通過(guò)付費數據監控平臺進(jìn)行數據回收的渠道,由于門(mén)檻有點(diǎn)高,我們暫時(shí)不聊。
第一種通常是你們比較常用的,圖里也基本囊括了目前市面上所有的常見(jiàn)的統計平臺,各有優(yōu)劣勢。
一般比較常用的是百度統計以及微軟的Google Analytics,但是因為微軟的Google Analytics須要翻墻,比較麻煩,所以我會(huì )推薦你們去使用百度統計,因為一個(gè)百度統計基本就可以滿(mǎn)足百分之90的數據搜集需求,接下來(lái)我也會(huì )重點(diǎn)的圍繞百度統計來(lái)給你們做詳盡的解釋。
首先百度統計統計邏輯分為以下兩種:
1)頁(yè)面轉化應用場(chǎng)景:頁(yè)面轉化通常運用于以URL為統計目標的數據,直白一點(diǎn)講就是假如你要統計的數據是一個(gè)不會(huì )改變的URL鏈接,那么頁(yè)面轉化就可以幫你實(shí)現。
比如,如果你覺(jué)得網(wǎng)站上的某個(gè)頁(yè)面非常重要(如遞交訂單后出現的“購買(mǎi)成功”頁(yè)面),到達了該頁(yè)面表示訪(fǎng)客完成了你的目標,你就可以將抵達該目標頁(yè)面作為一種轉化來(lái)統計。多用于電商類(lèi)的網(wǎng)站做統計使用。
頁(yè)面轉化的設置步驟:
?。ü俜綐藴剩?br /> 2)事件轉化;這一點(diǎn)筆者會(huì )重點(diǎn)的來(lái)給你們講。首先,一般常規的顧客可以使用修改網(wǎng)站的源代碼來(lái)統計轉化目標的,源代碼須要改成百度可以辨識的標準:“id=xxx”,找到轉化目標而且可使百度成功追蹤后,你就可以輕松的搜集到你的轉化數據了。
如圖:
這里可能有些同學(xué)要問(wèn)了,如果我想統計目標是訪(fǎng)問(wèn)行為的話(huà),怎么辦?接下來(lái)筆者會(huì )詳盡講一下關(guān)于怎么來(lái)統計一些難以被普通統計代碼跟蹤PV的特殊的網(wǎng)站或頁(yè)面。
在統計之前我們須要用到百度開(kāi)放平臺的一個(gè)合同:JS-API,JS-API通過(guò)在頁(yè)面上布署js代碼的方法,可以幫你搜集網(wǎng)站的各種業(yè)務(wù)數據(溝通數、點(diǎn)擊數、轉化數)
1、在布署JS前,你的網(wǎng)站不僅須要成安裝百度統計代碼,還須要新裝一串JS-API代碼,這里須要注意一下的是,JS-API代碼必須安裝在你統計頁(yè)面的 head 標簽上面,具體代碼如下:
2、在我們進(jìn)行進(jìn)一步安裝前,你須要明白風(fēng)波轉化的基本概念,不然以后的內容你會(huì )很難讀懂。
首先風(fēng)波轉化統計的是訪(fǎng)客在網(wǎng)站操作行為,這種行為可以被選取為轉化目標,比如你是一個(gè)做視頻網(wǎng)站的顧客,你希望通過(guò)風(fēng)波轉化來(lái)統計你每晚點(diǎn)擊某一個(gè)視頻“暫?!币约啊安シ拧眱蓚€(gè)動(dòng)作的數據,那么這些統計動(dòng)作的目的,都可以運用JS-API來(lái)做實(shí)現,以此類(lèi)推,你可以統計特別多的訪(fǎng)客行為,當然這些行為就是轉化目標了。
3、因為訪(fǎng)客在網(wǎng)站的動(dòng)作是一個(gè)行為,我們須要使代碼去辨識他的行為,就必須為她們加上惟一的標示,只有正確的添加了標示,系統就會(huì )正確的捕捉到數據。具體如下:
事件鏈接中加入風(fēng)波跟蹤參數(以下引用官方解釋?zhuān)?br /> _hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
category:要監控的目標的類(lèi)型名稱(chēng),通常是同一組目標的名子,比如"視頻"、"音樂(lè )"、"軟件"、"游戲"等等。該項必選。
action:用戶(hù)跟目標交互的行為,如"播放"、"暫停"、"下載"等等。該項必選。
opt_label:事件的一些額外信息,通??梢允歉枨拿Q(chēng)、軟件的名稱(chēng)、鏈接的名稱(chēng)等等。該項可選。
opt_value:事件的一些數值信息,比如權重、時(shí)長(cháng)、價(jià)格等等,在報表中可以見(jiàn)到其平均值等數據。該項可選。
舉例說(shuō)明:
假設頁(yè)面A上有且只有一個(gè)下載鏈接,設置前后對比如下:
設置前:
設置完成后,我們就可以去百度統計設置轉化目標了,你只須要在風(fēng)波轉化中的新增頁(yè)面中降低你布署JS代碼頁(yè)面鏈接,就可以成功的獲取數據了。
02 掌握數據剖析的思索維度
當我們成功布署了屬于我們自己的數據回收通道后,我們就可以輕松的獲取我們想要數據,但是好多時(shí)侯你們可能會(huì )認為,回收了這么多數據,我該如何去整理剖析了。
接下筆者會(huì )闡述領(lǐng)到數據后,我們須要怎樣來(lái)做剖析,這里,我只提供思索方向,具體的我就不再贅言了,因為同樣的數據,拿給不同的帳戶(hù),調整策略也不一定一樣,還是那句話(huà),數據剖析要結合你實(shí)際的企業(yè)情況以及產(chǎn)品特性和客戶(hù)群特點(diǎn)。
首先,你須要通過(guò)以下幾個(gè)思索維度來(lái)把數據立體化,這樣可以幫你快速把你確定帳戶(hù)問(wèn)題:
1、賬戶(hù)數據層面,我們帳戶(hù)是否詮釋點(diǎn)擊訪(fǎng)問(wèn)屬于正常值?
思路解析:賬戶(hù)的數據直接決定了這個(gè)帳戶(hù)大的方向是否是科學(xué)健康的,比如你的預算三天是100塊,ACP為20塊錢(qián),一天可以形成5次點(diǎn)擊,那么很容易的就可以曉得,賬戶(hù)大致的優(yōu)化方向應當圍繞著(zhù)增加ACP來(lái)。
2、賬戶(hù)類(lèi)有消費關(guān)鍵詞有多少?其中有80%消費是被什么詞消耗了,80%的點(diǎn)擊集中在哪些詞頭上,占80%點(diǎn)擊的關(guān)鍵詞是什么,他們消耗占整體的消耗的多少?他們轉化成本分別是多少?
思路解析:我們常常說(shuō)的二八原則,其實(shí)是一個(gè)比較科學(xué)的理論,我這兒把二八原則做了更多的延展。
首先你帳戶(hù)內的有消費詞決定了你的廣告面對的是一個(gè)多大的人群,然后帳戶(hù)80%的消費決定了你的錢(qián)都花在哪些詞頭上,80%的點(diǎn)擊決定了你實(shí)際訂購的流量質(zhì)量。
所以我們在做帳戶(hù)數據剖析的時(shí)侯,這些一定要成比例原則的去做深入的剖析,可以幫我們快速的定位問(wèn)題,這樣可以指導我們以后的優(yōu)化動(dòng)作會(huì )在正確的公路上。
案例解析:
這是一個(gè)搬家顧客,客戶(hù)每晚的預算80塊錢(qián),根據我們思路,來(lái)簡(jiǎn)單的剖析一下這個(gè)帳戶(hù)的問(wèn)題:
數據層面:?jiǎn)稳障M80,ACP:16.40,可以顯著(zhù)的看下來(lái),這個(gè)在極其嚴重的ACP和預算不符的情況,之后的優(yōu)化方向也確定為增加ACP為主。
通過(guò)轉化數據整理后我們可以看見(jiàn),這個(gè)帳戶(hù)有轉化的詞只有一個(gè),轉化成本為18.1,點(diǎn)擊流量?jì)r(jià)錢(qián)很高且普遍和原語(yǔ)匹配程度不高,結合數據,我們可以將這個(gè)帳戶(hù)的調整方案定為:ACP須要增加,暫定目標為同比增長(cháng)50%,點(diǎn)擊質(zhì)量須要優(yōu)化,做否詞,以及修改部份不合理的匹配方法。 查看全部
文章鏈接:視頻教程 | 追蹤URL生成、批量添加、追蹤數據剖析步驟解讀
3、如果上面兩種因為各類(lèi)緣由沒(méi)辦法短時(shí)間內學(xué)會(huì )的話(huà),筆者建議你可以用最笨的方式,就是人工的去統計,筆者有一個(gè)顧客就是這樣的,他對于每位咨詢(xún)過(guò)他的顧客,都會(huì )主動(dòng)尋問(wèn)對方搜索的關(guān)鍵詞,以及搜索的哪些平臺,雖然太笨,但能堅持出來(lái),也是挺實(shí)用的。
以上3種基本算是全部的統計模式了,還有一些通過(guò)付費數據監控平臺進(jìn)行數據回收的渠道,由于門(mén)檻有點(diǎn)高,我們暫時(shí)不聊。
第一種通常是你們比較常用的,圖里也基本囊括了目前市面上所有的常見(jiàn)的統計平臺,各有優(yōu)劣勢。
一般比較常用的是百度統計以及微軟的Google Analytics,但是因為微軟的Google Analytics須要翻墻,比較麻煩,所以我會(huì )推薦你們去使用百度統計,因為一個(gè)百度統計基本就可以滿(mǎn)足百分之90的數據搜集需求,接下來(lái)我也會(huì )重點(diǎn)的圍繞百度統計來(lái)給你們做詳盡的解釋。
首先百度統計統計邏輯分為以下兩種:

1)頁(yè)面轉化應用場(chǎng)景:頁(yè)面轉化通常運用于以URL為統計目標的數據,直白一點(diǎn)講就是假如你要統計的數據是一個(gè)不會(huì )改變的URL鏈接,那么頁(yè)面轉化就可以幫你實(shí)現。
比如,如果你覺(jué)得網(wǎng)站上的某個(gè)頁(yè)面非常重要(如遞交訂單后出現的“購買(mǎi)成功”頁(yè)面),到達了該頁(yè)面表示訪(fǎng)客完成了你的目標,你就可以將抵達該目標頁(yè)面作為一種轉化來(lái)統計。多用于電商類(lèi)的網(wǎng)站做統計使用。
頁(yè)面轉化的設置步驟:
?。ü俜綐藴剩?br /> 2)事件轉化;這一點(diǎn)筆者會(huì )重點(diǎn)的來(lái)給你們講。首先,一般常規的顧客可以使用修改網(wǎng)站的源代碼來(lái)統計轉化目標的,源代碼須要改成百度可以辨識的標準:“id=xxx”,找到轉化目標而且可使百度成功追蹤后,你就可以輕松的搜集到你的轉化數據了。
如圖:

這里可能有些同學(xué)要問(wèn)了,如果我想統計目標是訪(fǎng)問(wèn)行為的話(huà),怎么辦?接下來(lái)筆者會(huì )詳盡講一下關(guān)于怎么來(lái)統計一些難以被普通統計代碼跟蹤PV的特殊的網(wǎng)站或頁(yè)面。
在統計之前我們須要用到百度開(kāi)放平臺的一個(gè)合同:JS-API,JS-API通過(guò)在頁(yè)面上布署js代碼的方法,可以幫你搜集網(wǎng)站的各種業(yè)務(wù)數據(溝通數、點(diǎn)擊數、轉化數)
1、在布署JS前,你的網(wǎng)站不僅須要成安裝百度統計代碼,還須要新裝一串JS-API代碼,這里須要注意一下的是,JS-API代碼必須安裝在你統計頁(yè)面的 head 標簽上面,具體代碼如下:
2、在我們進(jìn)行進(jìn)一步安裝前,你須要明白風(fēng)波轉化的基本概念,不然以后的內容你會(huì )很難讀懂。
首先風(fēng)波轉化統計的是訪(fǎng)客在網(wǎng)站操作行為,這種行為可以被選取為轉化目標,比如你是一個(gè)做視頻網(wǎng)站的顧客,你希望通過(guò)風(fēng)波轉化來(lái)統計你每晚點(diǎn)擊某一個(gè)視頻“暫?!币约啊安シ拧眱蓚€(gè)動(dòng)作的數據,那么這些統計動(dòng)作的目的,都可以運用JS-API來(lái)做實(shí)現,以此類(lèi)推,你可以統計特別多的訪(fǎng)客行為,當然這些行為就是轉化目標了。
3、因為訪(fǎng)客在網(wǎng)站的動(dòng)作是一個(gè)行為,我們須要使代碼去辨識他的行為,就必須為她們加上惟一的標示,只有正確的添加了標示,系統就會(huì )正確的捕捉到數據。具體如下:
事件鏈接中加入風(fēng)波跟蹤參數(以下引用官方解釋?zhuān)?br /> _hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
category:要監控的目標的類(lèi)型名稱(chēng),通常是同一組目標的名子,比如"視頻"、"音樂(lè )"、"軟件"、"游戲"等等。該項必選。
action:用戶(hù)跟目標交互的行為,如"播放"、"暫停"、"下載"等等。該項必選。
opt_label:事件的一些額外信息,通??梢允歉枨拿Q(chēng)、軟件的名稱(chēng)、鏈接的名稱(chēng)等等。該項可選。
opt_value:事件的一些數值信息,比如權重、時(shí)長(cháng)、價(jià)格等等,在報表中可以見(jiàn)到其平均值等數據。該項可選。
舉例說(shuō)明:
假設頁(yè)面A上有且只有一個(gè)下載鏈接,設置前后對比如下:
設置前:
設置完成后,我們就可以去百度統計設置轉化目標了,你只須要在風(fēng)波轉化中的新增頁(yè)面中降低你布署JS代碼頁(yè)面鏈接,就可以成功的獲取數據了。
02 掌握數據剖析的思索維度
當我們成功布署了屬于我們自己的數據回收通道后,我們就可以輕松的獲取我們想要數據,但是好多時(shí)侯你們可能會(huì )認為,回收了這么多數據,我該如何去整理剖析了。
接下筆者會(huì )闡述領(lǐng)到數據后,我們須要怎樣來(lái)做剖析,這里,我只提供思索方向,具體的我就不再贅言了,因為同樣的數據,拿給不同的帳戶(hù),調整策略也不一定一樣,還是那句話(huà),數據剖析要結合你實(shí)際的企業(yè)情況以及產(chǎn)品特性和客戶(hù)群特點(diǎn)。
首先,你須要通過(guò)以下幾個(gè)思索維度來(lái)把數據立體化,這樣可以幫你快速把你確定帳戶(hù)問(wèn)題:
1、賬戶(hù)數據層面,我們帳戶(hù)是否詮釋點(diǎn)擊訪(fǎng)問(wèn)屬于正常值?
思路解析:賬戶(hù)的數據直接決定了這個(gè)帳戶(hù)大的方向是否是科學(xué)健康的,比如你的預算三天是100塊,ACP為20塊錢(qián),一天可以形成5次點(diǎn)擊,那么很容易的就可以曉得,賬戶(hù)大致的優(yōu)化方向應當圍繞著(zhù)增加ACP來(lái)。
2、賬戶(hù)類(lèi)有消費關(guān)鍵詞有多少?其中有80%消費是被什么詞消耗了,80%的點(diǎn)擊集中在哪些詞頭上,占80%點(diǎn)擊的關(guān)鍵詞是什么,他們消耗占整體的消耗的多少?他們轉化成本分別是多少?
思路解析:我們常常說(shuō)的二八原則,其實(shí)是一個(gè)比較科學(xué)的理論,我這兒把二八原則做了更多的延展。
首先你帳戶(hù)內的有消費詞決定了你的廣告面對的是一個(gè)多大的人群,然后帳戶(hù)80%的消費決定了你的錢(qián)都花在哪些詞頭上,80%的點(diǎn)擊決定了你實(shí)際訂購的流量質(zhì)量。
所以我們在做帳戶(hù)數據剖析的時(shí)侯,這些一定要成比例原則的去做深入的剖析,可以幫我們快速的定位問(wèn)題,這樣可以指導我們以后的優(yōu)化動(dòng)作會(huì )在正確的公路上。
案例解析:
這是一個(gè)搬家顧客,客戶(hù)每晚的預算80塊錢(qián),根據我們思路,來(lái)簡(jiǎn)單的剖析一下這個(gè)帳戶(hù)的問(wèn)題:

數據層面:?jiǎn)稳障M80,ACP:16.40,可以顯著(zhù)的看下來(lái),這個(gè)在極其嚴重的ACP和預算不符的情況,之后的優(yōu)化方向也確定為增加ACP為主。

通過(guò)轉化數據整理后我們可以看見(jiàn),這個(gè)帳戶(hù)有轉化的詞只有一個(gè),轉化成本為18.1,點(diǎn)擊流量?jì)r(jià)錢(qián)很高且普遍和原語(yǔ)匹配程度不高,結合數據,我們可以將這個(gè)帳戶(hù)的調整方案定為:ACP須要增加,暫定目標為同比增長(cháng)50%,點(diǎn)擊質(zhì)量須要優(yōu)化,做否詞,以及修改部份不合理的匹配方法。
如何獲取新浪微博數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 230 次瀏覽 ? 2020-08-10 01:37
在歷史數據獲取方面,與twitter相比,搜索插口比較弱,好在提供了搜索功能。
在實(shí)時(shí)數據獲取方面,sina 還是比較保守。與之相關(guān)的有三個(gè)插口用public_timeline、topics、nearby_timeline,分別拿來(lái)搜集公共的實(shí)時(shí)微博、某個(gè)話(huà)題下的實(shí)時(shí)微博、某點(diǎn)周?chē)膶?shí)時(shí)微博。由此可以看出:缺乏在某地點(diǎn)關(guān)于某關(guān)鍵詞的實(shí)時(shí)搜索插口。雖然有眾多限制,但依然有替代方案是:利用搜索功能可以進(jìn)行搜集一個(gè)小時(shí)前微博的,同時(shí)可以對關(guān)鍵字和地點(diǎn)進(jìn)行限制,等等。下面從歷史和實(shí)時(shí)數據兩個(gè)方面來(lái)述說(shuō)獲取微博數據。
數據搜集思路
歷史數據在科研方面很重要,特別是研究社交媒體方向。但是歷史數據也是有要求的,首先要主題相關(guān),然后歷史也有個(gè)具體時(shí)間段。結合這兩個(gè)要求的考慮,可以使用微博的中級搜索插口(詳見(jiàn))。
主要思路是:抓取網(wǎng)頁(yè);解析網(wǎng)頁(yè);存儲有用信息。
值得注意的是:我們可以選擇解析網(wǎng)頁(yè)的全部信息,包括微博文和用戶(hù)的部份信息,但這樣獲得的信息相對較少。這時(shí)可以考慮只從網(wǎng)頁(yè)中提取出微博的id,然后通過(guò)API來(lái)返回該微博的所有信息,包括用戶(hù)信息。
實(shí)時(shí)數據的主要作用可以彰顯在一些應用上,譬如實(shí)時(shí)檢測公眾對突發(fā)事件的反應。
主要思路是:實(shí)時(shí)數據的一條路徑為,利用微博提供的API進(jìn)行搜索。這里不表,調用API即可。另一條就是,上文提及的借助搜索功能搜集一個(gè)小時(shí)前的逾實(shí)時(shí)數據。
遇到的問(wèn)題
即每個(gè)小時(shí)對API的訪(fǎng)問(wèn)有次數限制。新浪微博API采用OAuth2進(jìn)行授權,有嚴格的訪(fǎng)問(wèn)權限和對應的訪(fǎng)問(wèn)頻次。一種走正規流程,申請appKey并獲得appSecret,從而的得到相應的權限和對應的訪(fǎng)問(wèn)頻次。當然還有其他方式可以避免這些限制。獲取OAuth2授權的形式不止這一種(可參考)。文中提及可以通過(guò)基于用戶(hù)名與密碼模式,這樣我們可以通過(guò)構造類(lèi)似 :
grant_type=password&client_id=s6BhdRkqt3&client_secret=47HDu8s&username=johndoe&password=A3ddj3w
這樣的URL懇求來(lái)申請Access Token。這時(shí)還是須要一個(gè)中級權限的appKey和appSecret。很幸運的是,很多APP和客戶(hù)端的官方微博appKey和appSecret在網(wǎng)路上都可以找到(可參見(jiàn))
原文點(diǎn)此 查看全部
無(wú)論是做與微博相關(guān)研究還是開(kāi)發(fā)相關(guān)應用,可能須要獲取歷史的或則實(shí)時(shí)的數據。如何獲取呢?除了新浪微博為開(kāi)發(fā)者提供了API, 還可以借助搜索功能(詳見(jiàn)此文)來(lái)搜集數據。
在歷史數據獲取方面,與twitter相比,搜索插口比較弱,好在提供了搜索功能。
在實(shí)時(shí)數據獲取方面,sina 還是比較保守。與之相關(guān)的有三個(gè)插口用public_timeline、topics、nearby_timeline,分別拿來(lái)搜集公共的實(shí)時(shí)微博、某個(gè)話(huà)題下的實(shí)時(shí)微博、某點(diǎn)周?chē)膶?shí)時(shí)微博。由此可以看出:缺乏在某地點(diǎn)關(guān)于某關(guān)鍵詞的實(shí)時(shí)搜索插口。雖然有眾多限制,但依然有替代方案是:利用搜索功能可以進(jìn)行搜集一個(gè)小時(shí)前微博的,同時(shí)可以對關(guān)鍵字和地點(diǎn)進(jìn)行限制,等等。下面從歷史和實(shí)時(shí)數據兩個(gè)方面來(lái)述說(shuō)獲取微博數據。
數據搜集思路
歷史數據在科研方面很重要,特別是研究社交媒體方向。但是歷史數據也是有要求的,首先要主題相關(guān),然后歷史也有個(gè)具體時(shí)間段。結合這兩個(gè)要求的考慮,可以使用微博的中級搜索插口(詳見(jiàn))。
主要思路是:抓取網(wǎng)頁(yè);解析網(wǎng)頁(yè);存儲有用信息。
值得注意的是:我們可以選擇解析網(wǎng)頁(yè)的全部信息,包括微博文和用戶(hù)的部份信息,但這樣獲得的信息相對較少。這時(shí)可以考慮只從網(wǎng)頁(yè)中提取出微博的id,然后通過(guò)API來(lái)返回該微博的所有信息,包括用戶(hù)信息。
實(shí)時(shí)數據的主要作用可以彰顯在一些應用上,譬如實(shí)時(shí)檢測公眾對突發(fā)事件的反應。
主要思路是:實(shí)時(shí)數據的一條路徑為,利用微博提供的API進(jìn)行搜索。這里不表,調用API即可。另一條就是,上文提及的借助搜索功能搜集一個(gè)小時(shí)前的逾實(shí)時(shí)數據。
遇到的問(wèn)題
即每個(gè)小時(shí)對API的訪(fǎng)問(wèn)有次數限制。新浪微博API采用OAuth2進(jìn)行授權,有嚴格的訪(fǎng)問(wèn)權限和對應的訪(fǎng)問(wèn)頻次。一種走正規流程,申請appKey并獲得appSecret,從而的得到相應的權限和對應的訪(fǎng)問(wèn)頻次。當然還有其他方式可以避免這些限制。獲取OAuth2授權的形式不止這一種(可參考)。文中提及可以通過(guò)基于用戶(hù)名與密碼模式,這樣我們可以通過(guò)構造類(lèi)似 :
grant_type=password&client_id=s6BhdRkqt3&client_secret=47HDu8s&username=johndoe&password=A3ddj3w
這樣的URL懇求來(lái)申請Access Token。這時(shí)還是須要一個(gè)中級權限的appKey和appSecret。很幸運的是,很多APP和客戶(hù)端的官方微博appKey和appSecret在網(wǎng)路上都可以找到(可參見(jiàn))
原文點(diǎn)此
如何高貴地拿下公眾號歷史文章、點(diǎn)贊數、閱讀數,甚至是評論?
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 188 次瀏覽 ? 2020-08-10 01:12
可能我們熟知的新榜、清博這種平臺提供這樣的數據,但是價(jià)錢(qián)卻使人望而止步。比如我們在新榜想獲取人民日報的所有歷史文章,竟然須要300榜豆,而300榜豆須要多少錢(qián)呢?285 人民幣?。?!
新榜采集公眾號歷史文章
采集價(jià)格
我想這個(gè)費用不是大多數自媒體工作者都還能承當的起的,包括我曾今也想過(guò)訂購這樣的服務(wù),但最終還是止住了,作為一個(gè)開(kāi)發(fā)者,這些問(wèn)題才能自己解決就不要去破費了,于是,我決定開(kāi)發(fā)一款這樣的工具,能夠幫助象我一樣須要快速獲得公眾號歷史文章數據的人更便捷、更經(jīng)濟地達到目的,所以便有了如今的小蜜蜂公眾號文章助手
小蜜蜂公眾號文章助手
助手實(shí)現的功能
助手界面
鏈接模式
代理模式
其中鏈接模式最為簡(jiǎn)單,僅需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式須要幾分鐘的設置,設置好后即可開(kāi)始采集
image.png
公眾號列表
采集結果列表
采集成功后,可到公眾號列表查看采集的結果,可以看見(jiàn)有文章數量、名稱(chēng)、以及一些導入文檔的操作 查看全部
相信,不少營(yíng)運工作者在日常工作中會(huì )碰到這樣的需求,經(jīng)常須要研究競爭對手的公眾號文章數據或則自己公眾號數據,然而微信公眾平臺并沒(méi)有提供這樣的方便操作,可以支持將公眾號數據導下來(lái)研究。
可能我們熟知的新榜、清博這種平臺提供這樣的數據,但是價(jià)錢(qián)卻使人望而止步。比如我們在新榜想獲取人民日報的所有歷史文章,竟然須要300榜豆,而300榜豆須要多少錢(qián)呢?285 人民幣?。?!

新榜采集公眾號歷史文章

采集價(jià)格
我想這個(gè)費用不是大多數自媒體工作者都還能承當的起的,包括我曾今也想過(guò)訂購這樣的服務(wù),但最終還是止住了,作為一個(gè)開(kāi)發(fā)者,這些問(wèn)題才能自己解決就不要去破費了,于是,我決定開(kāi)發(fā)一款這樣的工具,能夠幫助象我一樣須要快速獲得公眾號歷史文章數據的人更便捷、更經(jīng)濟地達到目的,所以便有了如今的小蜜蜂公眾號文章助手

小蜜蜂公眾號文章助手
助手實(shí)現的功能
助手界面

鏈接模式

代理模式
其中鏈接模式最為簡(jiǎn)單,僅需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式須要幾分鐘的設置,設置好后即可開(kāi)始采集

image.png
公眾號列表

采集結果列表
采集成功后,可到公眾號列表查看采集的結果,可以看見(jiàn)有文章數量、名稱(chēng)、以及一些導入文檔的操作
阿里云推薦引擎離線(xiàn)流程的主要作用是 site:blog.csdn.net
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 178 次瀏覽 ? 2020-08-10 00:18
推薦引擎(Recommendation Engine,以下簡(jiǎn)稱(chēng)RecEng,特指阿里云推薦引擎)是在阿里云估算環(huán)境下構建的一套推薦服務(wù)框架,目標是使廣大中小互聯(lián)網(wǎng)企業(yè)能否在這套框架上快速的搭建滿(mǎn)足自身業(yè)務(wù)需求的推薦服務(wù)。
課程鏈接:阿里云推薦引擎使用教程
推薦服務(wù)一般由三部份組成:日志采集,推薦估算和產(chǎn)品對接。推薦服務(wù)首先須要采集產(chǎn)品中記錄的用戶(hù)行為日志到離線(xiàn)存儲,然后在離線(xiàn)環(huán)境下借助推薦算法進(jìn)行用戶(hù)和物品的匹配估算,找出每位用戶(hù)可能感興趣的物品集合后,將這種預先估算好的結果推送到在線(xiàn)儲存上,最終產(chǎn)品在有用戶(hù)訪(fǎng)問(wèn)時(shí)通過(guò)在線(xiàn)API向推薦服務(wù)發(fā)起懇求,獲得該用戶(hù)可能感興趣的物品,完成推薦業(yè)務(wù)。
RecEng的核心是推薦算法的訂制。RecEng為推薦業(yè)務(wù)定義了一套完整的規范,從輸入,到估算,到輸出,客戶(hù)可以在這個(gè)框架下自定義算法和規則,以此滿(mǎn)足各類(lèi)行業(yè)的需求,包括電商,音樂(lè ),視頻,社交,新聞,閱讀等。同時(shí),RecEng也提供了相應的方式供顧客方便的接入用戶(hù)訪(fǎng)問(wèn)日志,以及自定義滿(mǎn)足其自身業(yè)務(wù)需求的在線(xiàn)API。
基本概念:
客戶(hù)/租戶(hù)(org/tenant)
指RecEng的使用者,系統中由其阿里云帳號代表。通常顧客是一個(gè)組織,RecEng中常用org表示顧客。
用戶(hù)(user)
指顧客的用戶(hù),即RecEng使用者的用戶(hù)。推薦是一個(gè)2C的服務(wù),使用推薦服務(wù)的顧客必然有其自己的用戶(hù),RecEng使用者的用戶(hù)簡(jiǎn)稱(chēng)為“用戶(hù)”,系統中常用user表示用戶(hù)。
物品(item)
指被推薦給用戶(hù)的內容,可以是商品,也可以是歌曲,視頻等其他內容,系統中常用item表示物品。
業(yè)務(wù)(biz)
業(yè)務(wù)針對數據集定義,定義了算法所能使用的數據范圍。一個(gè)顧客在RecEng上可以有多個(gè)業(yè)務(wù),不同的業(yè)務(wù)必然有不同的數據集。RecEng要求每位業(yè)務(wù)提供四類(lèi)數據(不要求全部提供):用戶(hù)數據,物品數據,用戶(hù)行為數據,推薦療效數據。每一組這樣的數據就構成一個(gè)業(yè)務(wù)。系統中常用biz表示業(yè)務(wù)。
比如某顧客A有兩類(lèi)被推薦的物品,分別是視頻和歌曲,于是顧客A可以在RecEng上構建兩個(gè)業(yè)務(wù)M和N,其中M的物品數據為視頻,N的物品數據為歌曲,其他的數據(指用戶(hù)數據,用戶(hù)行為數據等)可以都相同。在這些方案下,業(yè)務(wù)M和N的數據是獨立的,即業(yè)務(wù)M其實(shí)能看到用戶(hù)對于歌曲的行為,但是業(yè)務(wù)M中不收錄歌曲的物品數據,所以會(huì )扔掉用戶(hù)對于歌曲的行為;如果業(yè)務(wù)M中某用戶(hù)只對歌曲有行為,對視頻沒(méi)有行為,業(yè)務(wù)M也會(huì )扔掉這類(lèi)用戶(hù)。反之對業(yè)務(wù)N亦然。
一個(gè)業(yè)務(wù)最好只推薦一類(lèi)物品。多類(lèi)物品的推薦在后續的行業(yè)模板會(huì )有支持,需要引入藍籌股(plate)的概念,一份業(yè)務(wù)數據可以生成多個(gè)藍籌股的數據集,場(chǎng)景綁定某個(gè)藍籌股進(jìn)行推薦算法估算。
場(chǎng)景(scn)
場(chǎng)景指的是推薦的上下文,每個(gè)場(chǎng)景就會(huì )輸出一個(gè)API,場(chǎng)景由推薦時(shí)可用的參數決定。有兩種場(chǎng)景最為常見(jiàn),分別是首頁(yè)推薦場(chǎng)景和詳情頁(yè)推薦場(chǎng)景。顧名思義,在執行首頁(yè)推薦時(shí),可用的參數只有用戶(hù)信息;而在執行詳情頁(yè)推薦時(shí),可用的參數不僅用戶(hù)信息,還包括當前詳情頁(yè)上所展示的物品信息。系統中常用scn表示場(chǎng)景。
一個(gè)業(yè)務(wù)可以收錄多個(gè)場(chǎng)景,即對于某個(gè)業(yè)務(wù)A,它收錄多個(gè)首頁(yè)場(chǎng)景也是完全可以的。
事實(shí)上,回到場(chǎng)景的原創(chuàng )定義,場(chǎng)景只是由推薦的上下文決定,客戶(hù)完全可以按照自己的需求構建全新的場(chǎng)景,比如針對搜索關(guān)鍵詞的推薦場(chǎng)景,這時(shí)可用的參數不僅用戶(hù)信息,還有用戶(hù)所輸入的關(guān)鍵詞。
流程(flow)
算法流程指數據端到端的處理流程,一部分流程屬于業(yè)務(wù)范疇,如數據導出流程,效果估算流程,數據質(zhì)量分估算流程;一部分屬于場(chǎng)景,比如場(chǎng)景算法流程。從數據源類(lèi)型和產(chǎn)下來(lái)界定,又分為離線(xiàn)流程,近線(xiàn)流程,在線(xiàn)流程
離線(xiàn)流程
一般情況下,離線(xiàn)流程的輸入和輸出都是MaxCompute(原ODPS)表,所以離線(xiàn)數據規范雖然上是一組MaxCompute表的格式規范,包括接入數據、中間數據和輸出數據三類(lèi)數據的格式規范。接入數據指顧客離線(xiàn)提供的用戶(hù)、物品、日志等數據,中間數據是在離線(xiàn)算法流程中形成的各類(lèi)中間性質(zhì)的結果數據表,輸出數據是指推薦結果數據表,該結果最終將會(huì )被導出到在線(xiàn)儲存中,供在線(xiàn)估算模塊使用。
近線(xiàn)流程
推薦引擎的的近線(xiàn)流程主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新。不象離線(xiàn)算法,天然以MaxCompute(原ODPS)表作為輸入和輸出,近線(xiàn)程序的輸入數據可以來(lái)自多個(gè)數據源,如在線(xiàn)的表格儲存(原OTS),以及用戶(hù)的API懇求,又或則是程序中的變量;輸出可以是程序變量,或者寫(xiě)回在線(xiàn)儲存,或者返回給用戶(hù)。出于安全性考慮,推薦引擎提供了一組SDK供顧客自定義在線(xiàn)代碼讀寫(xiě)在線(xiàn)儲存(Table Store),不容許直接訪(fǎng)問(wèn),所以須要定義每類(lèi)在線(xiàn)儲存的別稱(chēng)和格式。對于須要頻繁使用的在線(xiàn)數據,無(wú)論其來(lái)自在線(xiàn)儲存還是用戶(hù)的API懇求,RecEng會(huì )預先讀好,保存在在線(xiàn)程序的變量中,客戶(hù)自定義代碼可以直接讀寫(xiě)這種變量中的數據。
在線(xiàn)流程
推薦引擎的的在線(xiàn)流程負責的任務(wù)是推薦API接收到API懇求時(shí),實(shí)時(shí)對離線(xiàn)和逾線(xiàn)修正形成的推薦結果進(jìn)行過(guò)濾、排重、補足等處理;后者主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新
一個(gè)場(chǎng)景只收錄一個(gè)離線(xiàn)流程和一個(gè)逾線(xiàn)流程,可以收錄多個(gè)在線(xiàn)流程,用于支持A/BTest。
算法策略(Algorithm Strategy)
算法策略定義了一套離線(xiàn)/近線(xiàn)流程。并且透出相關(guān)的算法參數,幫助顧客建立自己的算法流程。一個(gè)場(chǎng)景可以配置多個(gè)算法策略,最終會(huì )合并執行,產(chǎn)出一系列推薦候選集和過(guò)濾集,在線(xiàn)流程通過(guò)引用那些候選集來(lái)完成個(gè)性化推薦。
作業(yè)/任務(wù)(task)
作業(yè)指運行中的離線(xiàn)流程實(shí)例,作業(yè)和離線(xiàn)流程的關(guān)系完全等同于進(jìn)程和程序的關(guān)系。每個(gè)作業(yè)都是不可重入的,即對每位離線(xiàn)流程,同一時(shí)間只容許運行一份實(shí)例。作業(yè)直接存在上下游關(guān)系,如果上游作業(yè)失敗,下游任務(wù)也會(huì )被取消。
更多精品課程點(diǎn)擊:阿里云大學(xué) 查看全部
產(chǎn)品概述:
推薦引擎(Recommendation Engine,以下簡(jiǎn)稱(chēng)RecEng,特指阿里云推薦引擎)是在阿里云估算環(huán)境下構建的一套推薦服務(wù)框架,目標是使廣大中小互聯(lián)網(wǎng)企業(yè)能否在這套框架上快速的搭建滿(mǎn)足自身業(yè)務(wù)需求的推薦服務(wù)。
課程鏈接:阿里云推薦引擎使用教程
推薦服務(wù)一般由三部份組成:日志采集,推薦估算和產(chǎn)品對接。推薦服務(wù)首先須要采集產(chǎn)品中記錄的用戶(hù)行為日志到離線(xiàn)存儲,然后在離線(xiàn)環(huán)境下借助推薦算法進(jìn)行用戶(hù)和物品的匹配估算,找出每位用戶(hù)可能感興趣的物品集合后,將這種預先估算好的結果推送到在線(xiàn)儲存上,最終產(chǎn)品在有用戶(hù)訪(fǎng)問(wèn)時(shí)通過(guò)在線(xiàn)API向推薦服務(wù)發(fā)起懇求,獲得該用戶(hù)可能感興趣的物品,完成推薦業(yè)務(wù)。
RecEng的核心是推薦算法的訂制。RecEng為推薦業(yè)務(wù)定義了一套完整的規范,從輸入,到估算,到輸出,客戶(hù)可以在這個(gè)框架下自定義算法和規則,以此滿(mǎn)足各類(lèi)行業(yè)的需求,包括電商,音樂(lè ),視頻,社交,新聞,閱讀等。同時(shí),RecEng也提供了相應的方式供顧客方便的接入用戶(hù)訪(fǎng)問(wèn)日志,以及自定義滿(mǎn)足其自身業(yè)務(wù)需求的在線(xiàn)API。
基本概念:
客戶(hù)/租戶(hù)(org/tenant)
指RecEng的使用者,系統中由其阿里云帳號代表。通常顧客是一個(gè)組織,RecEng中常用org表示顧客。
用戶(hù)(user)
指顧客的用戶(hù),即RecEng使用者的用戶(hù)。推薦是一個(gè)2C的服務(wù),使用推薦服務(wù)的顧客必然有其自己的用戶(hù),RecEng使用者的用戶(hù)簡(jiǎn)稱(chēng)為“用戶(hù)”,系統中常用user表示用戶(hù)。
物品(item)
指被推薦給用戶(hù)的內容,可以是商品,也可以是歌曲,視頻等其他內容,系統中常用item表示物品。
業(yè)務(wù)(biz)
業(yè)務(wù)針對數據集定義,定義了算法所能使用的數據范圍。一個(gè)顧客在RecEng上可以有多個(gè)業(yè)務(wù),不同的業(yè)務(wù)必然有不同的數據集。RecEng要求每位業(yè)務(wù)提供四類(lèi)數據(不要求全部提供):用戶(hù)數據,物品數據,用戶(hù)行為數據,推薦療效數據。每一組這樣的數據就構成一個(gè)業(yè)務(wù)。系統中常用biz表示業(yè)務(wù)。
比如某顧客A有兩類(lèi)被推薦的物品,分別是視頻和歌曲,于是顧客A可以在RecEng上構建兩個(gè)業(yè)務(wù)M和N,其中M的物品數據為視頻,N的物品數據為歌曲,其他的數據(指用戶(hù)數據,用戶(hù)行為數據等)可以都相同。在這些方案下,業(yè)務(wù)M和N的數據是獨立的,即業(yè)務(wù)M其實(shí)能看到用戶(hù)對于歌曲的行為,但是業(yè)務(wù)M中不收錄歌曲的物品數據,所以會(huì )扔掉用戶(hù)對于歌曲的行為;如果業(yè)務(wù)M中某用戶(hù)只對歌曲有行為,對視頻沒(méi)有行為,業(yè)務(wù)M也會(huì )扔掉這類(lèi)用戶(hù)。反之對業(yè)務(wù)N亦然。
一個(gè)業(yè)務(wù)最好只推薦一類(lèi)物品。多類(lèi)物品的推薦在后續的行業(yè)模板會(huì )有支持,需要引入藍籌股(plate)的概念,一份業(yè)務(wù)數據可以生成多個(gè)藍籌股的數據集,場(chǎng)景綁定某個(gè)藍籌股進(jìn)行推薦算法估算。
場(chǎng)景(scn)
場(chǎng)景指的是推薦的上下文,每個(gè)場(chǎng)景就會(huì )輸出一個(gè)API,場(chǎng)景由推薦時(shí)可用的參數決定。有兩種場(chǎng)景最為常見(jiàn),分別是首頁(yè)推薦場(chǎng)景和詳情頁(yè)推薦場(chǎng)景。顧名思義,在執行首頁(yè)推薦時(shí),可用的參數只有用戶(hù)信息;而在執行詳情頁(yè)推薦時(shí),可用的參數不僅用戶(hù)信息,還包括當前詳情頁(yè)上所展示的物品信息。系統中常用scn表示場(chǎng)景。
一個(gè)業(yè)務(wù)可以收錄多個(gè)場(chǎng)景,即對于某個(gè)業(yè)務(wù)A,它收錄多個(gè)首頁(yè)場(chǎng)景也是完全可以的。
事實(shí)上,回到場(chǎng)景的原創(chuàng )定義,場(chǎng)景只是由推薦的上下文決定,客戶(hù)完全可以按照自己的需求構建全新的場(chǎng)景,比如針對搜索關(guān)鍵詞的推薦場(chǎng)景,這時(shí)可用的參數不僅用戶(hù)信息,還有用戶(hù)所輸入的關(guān)鍵詞。
流程(flow)
算法流程指數據端到端的處理流程,一部分流程屬于業(yè)務(wù)范疇,如數據導出流程,效果估算流程,數據質(zhì)量分估算流程;一部分屬于場(chǎng)景,比如場(chǎng)景算法流程。從數據源類(lèi)型和產(chǎn)下來(lái)界定,又分為離線(xiàn)流程,近線(xiàn)流程,在線(xiàn)流程
離線(xiàn)流程
一般情況下,離線(xiàn)流程的輸入和輸出都是MaxCompute(原ODPS)表,所以離線(xiàn)數據規范雖然上是一組MaxCompute表的格式規范,包括接入數據、中間數據和輸出數據三類(lèi)數據的格式規范。接入數據指顧客離線(xiàn)提供的用戶(hù)、物品、日志等數據,中間數據是在離線(xiàn)算法流程中形成的各類(lèi)中間性質(zhì)的結果數據表,輸出數據是指推薦結果數據表,該結果最終將會(huì )被導出到在線(xiàn)儲存中,供在線(xiàn)估算模塊使用。
近線(xiàn)流程
推薦引擎的的近線(xiàn)流程主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新。不象離線(xiàn)算法,天然以MaxCompute(原ODPS)表作為輸入和輸出,近線(xiàn)程序的輸入數據可以來(lái)自多個(gè)數據源,如在線(xiàn)的表格儲存(原OTS),以及用戶(hù)的API懇求,又或則是程序中的變量;輸出可以是程序變量,或者寫(xiě)回在線(xiàn)儲存,或者返回給用戶(hù)。出于安全性考慮,推薦引擎提供了一組SDK供顧客自定義在線(xiàn)代碼讀寫(xiě)在線(xiàn)儲存(Table Store),不容許直接訪(fǎng)問(wèn),所以須要定義每類(lèi)在線(xiàn)儲存的別稱(chēng)和格式。對于須要頻繁使用的在線(xiàn)數據,無(wú)論其來(lái)自在線(xiàn)儲存還是用戶(hù)的API懇求,RecEng會(huì )預先讀好,保存在在線(xiàn)程序的變量中,客戶(hù)自定義代碼可以直接讀寫(xiě)這種變量中的數據。
在線(xiàn)流程
推薦引擎的的在線(xiàn)流程負責的任務(wù)是推薦API接收到API懇求時(shí),實(shí)時(shí)對離線(xiàn)和逾線(xiàn)修正形成的推薦結果進(jìn)行過(guò)濾、排重、補足等處理;后者主要處理用戶(hù)行為發(fā)生變化、推薦物品發(fā)生更新時(shí),對離線(xiàn)推薦結果進(jìn)行更新
一個(gè)場(chǎng)景只收錄一個(gè)離線(xiàn)流程和一個(gè)逾線(xiàn)流程,可以收錄多個(gè)在線(xiàn)流程,用于支持A/BTest。
算法策略(Algorithm Strategy)
算法策略定義了一套離線(xiàn)/近線(xiàn)流程。并且透出相關(guān)的算法參數,幫助顧客建立自己的算法流程。一個(gè)場(chǎng)景可以配置多個(gè)算法策略,最終會(huì )合并執行,產(chǎn)出一系列推薦候選集和過(guò)濾集,在線(xiàn)流程通過(guò)引用那些候選集來(lái)完成個(gè)性化推薦。
作業(yè)/任務(wù)(task)
作業(yè)指運行中的離線(xiàn)流程實(shí)例,作業(yè)和離線(xiàn)流程的關(guān)系完全等同于進(jìn)程和程序的關(guān)系。每個(gè)作業(yè)都是不可重入的,即對每位離線(xiàn)流程,同一時(shí)間只容許運行一份實(shí)例。作業(yè)直接存在上下游關(guān)系,如果上游作業(yè)失敗,下游任務(wù)也會(huì )被取消。
更多精品課程點(diǎn)擊:阿里云大學(xué)
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 759 次瀏覽 ? 2020-08-09 19:43
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
這段時(shí)間仍然在處理數據采集的問(wèn)題,目前平臺數據采集趨于穩定,可以抽出時(shí)間來(lái)整理一下近日的成果,順便介紹一些近日用到的技術(shù)。本篇文章偏向技術(shù),需要讀者有一定的技術(shù)基礎,主要介紹數據采集過(guò)程中用到的利器mitmproxy,以及平臺的一些技術(shù)設計。以下是數據采集整體的設計,左邊是客戶(hù)機,在里面放置了不同的采集器,采集器發(fā)起懇求以后,通過(guò)mitmproxy訪(fǎng)問(wèn)抖音,等數據回傳以后,通過(guò)中間的解析器對數據進(jìn)行解析,最后分門(mén)別類(lèi)的儲存到數據庫中,為了提高性能,在中間加入了緩存,把采集器和解析器分隔開(kāi),兩個(gè)模塊之間工作互不影響,可以最大限度的把數據入庫,下圖為第一代構架設計,后續會(huì )有一篇文章介紹平臺構架設計的三代演化史。
準備工作
開(kāi)始步入數據采集的打算工作,第一步自然是環(huán)境搭建,本次我們在windows環(huán)境下,采用python3.6.6環(huán)境,抓包和代理工具是mitmproxy,也可以使用Fiddler抓包,采用夜神模擬器來(lái)模擬安卓運行環(huán)境(也可以用真機),這次主要通過(guò)自動(dòng)滑動(dòng)app來(lái)抓取數據,下次介紹采用Appium自動(dòng)化工具,實(shí)現數據采集的全手動(dòng)(解放右手)。
1、安裝python3.6.6環(huán)境,安裝過(guò)程可自行百度,需要注意的是,centos7自帶的是python2.7,需要升級到python3.6.6環(huán)境,升級之前主要先安裝ssl模塊,否則升級好的版本未能訪(fǎng)問(wèn)https的懇求。
2、安裝mitmproxy,安裝好python環(huán)境后,在命令行執行pip install mitmproxy安裝mitmproxy,注:windows下只有mitmdump和mitmweb可以使用,安裝好后在命令行輸入mitmdump即可啟動(dòng),默認啟動(dòng)的代理端口為8080。
3、安裝夜神模擬器,可以在官網(wǎng)下載安裝包,安裝教程自行百度即可,基本都是下一步。安裝好夜神模擬器以后,需要對夜神模擬器進(jìn)行配置。首先須要設置模擬器的網(wǎng)路為自動(dòng)代理,IP地址為windows的IP,端口為mitmproxy的代理端口。
4、接下來(lái)是證書(shū)的安裝,打開(kāi)模擬器中的瀏覽器,輸入地址mitm.it,選擇對應版本的證書(shū),安裝好后,就可以進(jìn)行抓包了。
5、安裝app,app安裝包可以到官網(wǎng)下載,然后通過(guò)拖放進(jìn)模擬器就可以安裝,或者在應用市場(chǎng)進(jìn)行安裝。
至此,本次數據采集環(huán)境就全部搭建完成。
數據插口剖析 抓包
搭建好環(huán)境以后就開(kāi)始對抖音app進(jìn)行數據抓包,分析出每位功能所使用的插口,本次以采集視頻數據插口為例介紹。
關(guān)閉之前打開(kāi)的mitmdump,重新打開(kāi)mitmweb工具,mitmweb是一個(gè)圖形化的版本,就不用對著(zhù)黑框框找了,如下圖:
啟動(dòng)以后打開(kāi)模擬器的抖音app,可以看見(jiàn)早已有數據包解析下來(lái)了,然后步入用戶(hù)主頁(yè),開(kāi)始下降視頻,在數據包列表中可以找到懇求視頻數據的插口
可以在左邊看見(jiàn)插口的懇求數據和響應數據,我們將響應數據復制下來(lái),進(jìn)入下一步解析。
數據解析
通過(guò)mitmproxy和python代碼的結合,我們就可以在代碼中獲取到mitmproxy中的數據包,進(jìn)而可以根據需求來(lái)處理。新建一個(gè)test.py文件,里面放兩個(gè)方式:
def request(flow):
pass
def response(flow):
pass
見(jiàn)名知意,這兩個(gè)方式,一個(gè)是在懇求的時(shí)侯執行的,一個(gè)是在響應的時(shí)侯執行,而數據包則存在于flow當中。通過(guò)flow.request.url可以獲取到懇求url,flow.request.headers可以獲取到懇求頭信息,flow.response.text中的就是響應的數據了。
def response(flow):
if str(flow.request.url).startswith("https://aweme.snssdk.com/aweme/v1/aweme/post/"):
index_response_dict = json.loads(flow.response.text)
aweme_list = index_response_dict.get('aweme_list')
if aweme_list:
for aweme in aweme_list:
print(aweme)
這個(gè)aweme就是一個(gè)完整的視頻數據了,可以按照須要提取上面的信息,這里提取部份信息做介紹。
"statistics":{
"aweme_id":"6765058962225204493",
"comment_count":24,
"digg_count":1465,
"download_count":1,
"play_count":0,
"share_count":3,
"forward_count":0,
"lose_count":0,
"lose_comment_count":0
}
statistics信息就是這個(gè)視頻的點(diǎn)贊,評論,下載,轉發(fā)的數據。
share_url為視頻的分享地址,通過(guò)這個(gè)地址,可以在PC端觀(guān)看抖音分享的視頻,也可以通過(guò)這個(gè)鏈接解析到無(wú)水印視頻。
play_addr為視頻的播放信息,其中的url_list即為無(wú)水印地址,不過(guò)目前官方做了處理,這個(gè)地址難以直接播放,也有時(shí)間限制,超時(shí)以后鏈接就失效了。
有了這個(gè)aweme,就可以把上面的信息解析下來(lái),保存到自己的數據庫,或者下載無(wú)水印視頻,保存到自己筆記本了。
寫(xiě)好代碼然后,保存test.py文件,cmd步入命令行,進(jìn)入到保存test.py文件目錄下,在命令行輸入mitmdump -s test.py,mitmdump就啟動(dòng)了,此時(shí)打開(kāi)app,開(kāi)始滑動(dòng)模擬器,進(jìn)入用戶(hù)主頁(yè):
開(kāi)始不斷下降,test.py文件就可以把抓取到的視頻數據全部解析下來(lái)了,以下是我截取的部份數據信息:
視頻信息:
視頻統計數據: 查看全部
公眾號原文鏈接:
數據平臺初試(技術(shù)篇)——抖音數據采集(初級版)
這段時(shí)間仍然在處理數據采集的問(wèn)題,目前平臺數據采集趨于穩定,可以抽出時(shí)間來(lái)整理一下近日的成果,順便介紹一些近日用到的技術(shù)。本篇文章偏向技術(shù),需要讀者有一定的技術(shù)基礎,主要介紹數據采集過(guò)程中用到的利器mitmproxy,以及平臺的一些技術(shù)設計。以下是數據采集整體的設計,左邊是客戶(hù)機,在里面放置了不同的采集器,采集器發(fā)起懇求以后,通過(guò)mitmproxy訪(fǎng)問(wèn)抖音,等數據回傳以后,通過(guò)中間的解析器對數據進(jìn)行解析,最后分門(mén)別類(lèi)的儲存到數據庫中,為了提高性能,在中間加入了緩存,把采集器和解析器分隔開(kāi),兩個(gè)模塊之間工作互不影響,可以最大限度的把數據入庫,下圖為第一代構架設計,后續會(huì )有一篇文章介紹平臺構架設計的三代演化史。

準備工作
開(kāi)始步入數據采集的打算工作,第一步自然是環(huán)境搭建,本次我們在windows環(huán)境下,采用python3.6.6環(huán)境,抓包和代理工具是mitmproxy,也可以使用Fiddler抓包,采用夜神模擬器來(lái)模擬安卓運行環(huán)境(也可以用真機),這次主要通過(guò)自動(dòng)滑動(dòng)app來(lái)抓取數據,下次介紹采用Appium自動(dòng)化工具,實(shí)現數據采集的全手動(dòng)(解放右手)。
1、安裝python3.6.6環(huán)境,安裝過(guò)程可自行百度,需要注意的是,centos7自帶的是python2.7,需要升級到python3.6.6環(huán)境,升級之前主要先安裝ssl模塊,否則升級好的版本未能訪(fǎng)問(wèn)https的懇求。
2、安裝mitmproxy,安裝好python環(huán)境后,在命令行執行pip install mitmproxy安裝mitmproxy,注:windows下只有mitmdump和mitmweb可以使用,安裝好后在命令行輸入mitmdump即可啟動(dòng),默認啟動(dòng)的代理端口為8080。
3、安裝夜神模擬器,可以在官網(wǎng)下載安裝包,安裝教程自行百度即可,基本都是下一步。安裝好夜神模擬器以后,需要對夜神模擬器進(jìn)行配置。首先須要設置模擬器的網(wǎng)路為自動(dòng)代理,IP地址為windows的IP,端口為mitmproxy的代理端口。

4、接下來(lái)是證書(shū)的安裝,打開(kāi)模擬器中的瀏覽器,輸入地址mitm.it,選擇對應版本的證書(shū),安裝好后,就可以進(jìn)行抓包了。

5、安裝app,app安裝包可以到官網(wǎng)下載,然后通過(guò)拖放進(jìn)模擬器就可以安裝,或者在應用市場(chǎng)進(jìn)行安裝。
至此,本次數據采集環(huán)境就全部搭建完成。
數據插口剖析 抓包
搭建好環(huán)境以后就開(kāi)始對抖音app進(jìn)行數據抓包,分析出每位功能所使用的插口,本次以采集視頻數據插口為例介紹。
關(guān)閉之前打開(kāi)的mitmdump,重新打開(kāi)mitmweb工具,mitmweb是一個(gè)圖形化的版本,就不用對著(zhù)黑框框找了,如下圖:

啟動(dòng)以后打開(kāi)模擬器的抖音app,可以看見(jiàn)早已有數據包解析下來(lái)了,然后步入用戶(hù)主頁(yè),開(kāi)始下降視頻,在數據包列表中可以找到懇求視頻數據的插口

可以在左邊看見(jiàn)插口的懇求數據和響應數據,我們將響應數據復制下來(lái),進(jìn)入下一步解析。

數據解析
通過(guò)mitmproxy和python代碼的結合,我們就可以在代碼中獲取到mitmproxy中的數據包,進(jìn)而可以根據需求來(lái)處理。新建一個(gè)test.py文件,里面放兩個(gè)方式:
def request(flow):
pass
def response(flow):
pass
見(jiàn)名知意,這兩個(gè)方式,一個(gè)是在懇求的時(shí)侯執行的,一個(gè)是在響應的時(shí)侯執行,而數據包則存在于flow當中。通過(guò)flow.request.url可以獲取到懇求url,flow.request.headers可以獲取到懇求頭信息,flow.response.text中的就是響應的數據了。
def response(flow):
if str(flow.request.url).startswith("https://aweme.snssdk.com/aweme/v1/aweme/post/"):
index_response_dict = json.loads(flow.response.text)
aweme_list = index_response_dict.get('aweme_list')
if aweme_list:
for aweme in aweme_list:
print(aweme)
這個(gè)aweme就是一個(gè)完整的視頻數據了,可以按照須要提取上面的信息,這里提取部份信息做介紹。
"statistics":{
"aweme_id":"6765058962225204493",
"comment_count":24,
"digg_count":1465,
"download_count":1,
"play_count":0,
"share_count":3,
"forward_count":0,
"lose_count":0,
"lose_comment_count":0
}
statistics信息就是這個(gè)視頻的點(diǎn)贊,評論,下載,轉發(fā)的數據。
share_url為視頻的分享地址,通過(guò)這個(gè)地址,可以在PC端觀(guān)看抖音分享的視頻,也可以通過(guò)這個(gè)鏈接解析到無(wú)水印視頻。
play_addr為視頻的播放信息,其中的url_list即為無(wú)水印地址,不過(guò)目前官方做了處理,這個(gè)地址難以直接播放,也有時(shí)間限制,超時(shí)以后鏈接就失效了。
有了這個(gè)aweme,就可以把上面的信息解析下來(lái),保存到自己的數據庫,或者下載無(wú)水印視頻,保存到自己筆記本了。
寫(xiě)好代碼然后,保存test.py文件,cmd步入命令行,進(jìn)入到保存test.py文件目錄下,在命令行輸入mitmdump -s test.py,mitmdump就啟動(dòng)了,此時(shí)打開(kāi)app,開(kāi)始滑動(dòng)模擬器,進(jìn)入用戶(hù)主頁(yè):

開(kāi)始不斷下降,test.py文件就可以把抓取到的視頻數據全部解析下來(lái)了,以下是我截取的部份數據信息:
視頻信息:

視頻統計數據:
初探漏洞挖掘基礎
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 209 次瀏覽 ? 2020-08-09 10:11
import requests
import threading
import re
targets = []
names = []
def icp_info(host):
url = "https://icp.chinaz.com/ajaxsyn ... 5host
html = requests.get(url,timeout=(5,10)).text
pattern = re.compile('SiteName:"(.*?)",MainPage:"(.*?)"',re.S)
info = re.findall(pattern,html)
for i in range(0,32):
try:
name = info[i][0]
target = info[i][1]
print("%s:%s"%(name,target))
if target not in targets:
targets.append(target)
with open("icp_info.txt","a+") as f:
f.write("%s:%s"%(name,target) + "\n")
continue
else:
continue
except Exception as e:
continue
def start():
with open("url.txt","r+") as a:
for b in a:
b = b.strip()
icp_info(host=b)
a.close()
def main():
thread = threading.Thread(target=start,)
thread.start()
if __name__ == '__main__':
main()
先知的代碼塊可能不太友好,可以瞧瞧圖片:
使用方式:urls.txt傳入你須要查詢(xún)的網(wǎng)站,會(huì )手動(dòng)對獲取到的domain進(jìn)行去重。
使用維基百科對個(gè)別添加資產(chǎn)詞條的網(wǎng)站可以獲取到其部份資產(chǎn)信息:
但是某南沒(méi)有添加該詞條,所以獲取不到相關(guān)信息。
步驟:
先對已知網(wǎng)站進(jìn)行whois查詢(xún),我們這兒可以去微步查詢(xún)歷史whois,可以獲取到歷史的whois信息。
利用這種信息,我們就可以反查whois,獲取該注冊者/電話(huà)/郵箱下的相關(guān)域名。
我正在寫(xiě)一個(gè)腳本,即批量獲取whois->反查whois->提取關(guān)鍵信息->去重。
寫(xiě)好了我會(huì )發(fā)到github上,可關(guān)注:
我們可以直接搜索網(wǎng)站官網(wǎng),可以獲得一些頁(yè)面/頭部中富含該關(guān)鍵字的網(wǎng)站。
zoomeye:
shodan:
fofa:
此外,我們還可以借助那些搜索引擎的搜索句型來(lái)獲取資產(chǎn)。
shodan可以搜索指定公司的資產(chǎn),也可以借助特定的網(wǎng)站logo來(lái)獲取資產(chǎn)。
比如我們發(fā)覺(jué)某南的網(wǎng)站icon基本為同一個(gè),我們就可以先去搜索,獲取其帶有icon的網(wǎng)站,隨便選一個(gè)獲取hash后借助搜索句型來(lái)獲取指定icon的網(wǎng)站。
fofa可以直接借助domain關(guān)鍵字來(lái)搜索特定網(wǎng)站下的子域名:
zoomeye可以借助hostname關(guān)鍵字來(lái)獲取主機列表中的資產(chǎn):
github也可以拿來(lái)獲取資產(chǎn),但是大多數情況下還是用于獲取敏感信息(用戶(hù)名/密碼/郵箱)等。
當然也可以拿來(lái)搜索資產(chǎn):
這里推薦一款平常在用的github敏感信息采集工具:
我們可以自定義規則,來(lái)獲取自己所須要的信息。
這里還是以某南為例:
我們除了可以采集企業(yè)公眾號,還可以采集企業(yè)的小程序,因為其中大部分都是會(huì )與WEB端的插口做交互的。
公眾號:
小程序:
我們不光須要從企業(yè)網(wǎng)站中找尋該企業(yè)開(kāi)發(fā)的APP,也可以自己通過(guò)關(guān)鍵字來(lái)獲取APP,因為其中有的APP是公測的,只是上線(xiàn)了,但是還未對外公布。
以某南為例:
我們不僅直接搜索企業(yè)關(guān)鍵字外,還可以獲取其開(kāi)發(fā)者的歷史開(kāi)發(fā)記錄:
這樣循環(huán):APP->開(kāi)發(fā)者->APP
在這過(guò)程中我們常常能獲取到許多APP,后續再對其進(jìn)行相關(guān)的滲透。
我們可以使用Google/Bing/Baidu等網(wǎng)站對某個(gè)網(wǎng)站進(jìn)行資產(chǎn)采集:
當然,搭配搜索句型食用療效更佳:
之前提及了采集APP資產(chǎn),有的APP實(shí)際上并不只是使用用戶(hù)可用的那幾個(gè)插口,可能還有插口在代碼中,這時(shí)候可以用工具將這種URI提取下來(lái)。
這里推薦兩款從APK中提取有效信息的工具:
很多剛鉆洞的師父可能不太注意JS,但實(shí)際上JS中可能隱藏了很重要的插口,其中可能就存在未授權等漏洞,這里推薦同學(xué)寫(xiě)的一款從JS中提取有效域名/api的工具。
JSFINDER:
調的是LinkFinder的正則,可以循環(huán)爬取,即:
爬取domain->獲取domain主頁(yè)面下的link->獲取domain主頁(yè)面下的js->獲取link頁(yè)面下的js->解析所有js并提取出有效信息
中期
到了此步我們早已采集了企業(yè)的大部分資產(chǎn)了,剩下的就是獲取更多資產(chǎn),即子域名/IP/PORT/服務(wù)...等。
sublist3r:
這是一款很不錯的工具,調用了幾個(gè)搜索引擎以及一些子域名查詢(xún)網(wǎng)站的API,具體可以去項目頁(yè)查看。
sublist3r:
subfinder:
這款工具調用的API有很多:
Ask,Archive.is,百度,Bing,Censys,CertDB,CertSpotter,Commoncrawl,CrtSH,DnsDB,DNSDumpster,Dnstable,Dogpile,Entrust CT-Search,Exalead,FindSubdomains,GoogleTER,Hackertarget,IPv4Info,Netcraft,PassiveTotal,PTRArchive,Riddler ,SecurityTrails,SiteDossier,Shodan,ThreatCrowd,ThreatMiner,Virustotal,WaybackArchive,Yahoo
初次使用須要我們自己配置API插口的帳號/密碼/key...等。
圖片始于youtube:
subfinder:
github:
LAYER:
很早之前牧師寫(xiě)的一款工具,可以手動(dòng)過(guò)濾泛解析的域名,字典+API的形式來(lái)采集資產(chǎn),當然更多的是字典,速度也相當可觀(guān):
altdns:
這款工具我通常是到最后采集完了所以子域名并去重后使用的,他可以幫助我們發(fā)覺(jué)一些二級/三級非常隱蔽的域名。
以vivo舉例:
altdns:
關(guān)于企業(yè)IP的采集我們可以直接寫(xiě)腳本去調ip138的插口,可以獲取到當前解析IP和歷史解析IP,還是比較全的。
ip138:
獲取完企業(yè)的IP范圍以后,我們就可以用nmap/masscan等工具對其端口/服務(wù)進(jìn)行掃描,這個(gè)過(guò)程可能會(huì )有點(diǎn)久。
我們須要先判別企業(yè)是直接買(mǎi)了一個(gè)C段的IP,還是只使用一個(gè)IP,再選擇掃描整個(gè)C段或則是單個(gè)IP。
這是我之前使用nmap對某東域名批量進(jìn)行C段掃描的結果:
我們的注意力可以置于幾個(gè)WEB服務(wù)端口,和一些可能存在漏洞的服務(wù)端口,如redis/mongodb等。
至此,資產(chǎn)采集基本早已結束了,我們可以將采集到的資產(chǎn)選擇性的入庫,這樣以后獲取新資產(chǎn)時(shí)就可以對比一下是否存在。
后期
這部份可能是我寫(xiě)的最少的部份。
獲取完資產(chǎn)然后,就是苦力活了,我的步驟是,先把獲取到的資產(chǎn)丟到掃描器(awvs/nessus)里先掃一遍,避免一些沒(méi)必要的體力勞動(dòng)。
nessus主要拿來(lái)掃描端口服務(wù)的漏洞以及一些系統CVE,awvs主要拿來(lái)掃描WEB端的漏洞,如XSS/SQLI/CSRF/CORS/備份文件...等等。
指紋辨識部份可以使用云悉的,可以自己寫(xiě)個(gè)插件之后申請個(gè)API:
我都會(huì )用BBSCAN/weakfilescan來(lái)掃描網(wǎng)站中可能存在的敏感信息,如.git/.svn/備份文件等等。
BBSCAN:
weakfilescan:
之后的基本就是自動(dòng)勞動(dòng)了,對獲取到的資產(chǎn)借助已有知識一個(gè)個(gè)的測。 查看全部
單線(xiàn)程:
import requests
import threading
import re
targets = []
names = []
def icp_info(host):
url = "https://icp.chinaz.com/ajaxsyn ... 5host
html = requests.get(url,timeout=(5,10)).text
pattern = re.compile('SiteName:"(.*?)",MainPage:"(.*?)"',re.S)
info = re.findall(pattern,html)
for i in range(0,32):
try:
name = info[i][0]
target = info[i][1]
print("%s:%s"%(name,target))
if target not in targets:
targets.append(target)
with open("icp_info.txt","a+") as f:
f.write("%s:%s"%(name,target) + "\n")
continue
else:
continue
except Exception as e:
continue
def start():
with open("url.txt","r+") as a:
for b in a:
b = b.strip()
icp_info(host=b)
a.close()
def main():
thread = threading.Thread(target=start,)
thread.start()
if __name__ == '__main__':
main()
先知的代碼塊可能不太友好,可以瞧瞧圖片:

使用方式:urls.txt傳入你須要查詢(xún)的網(wǎng)站,會(huì )手動(dòng)對獲取到的domain進(jìn)行去重。
使用維基百科對個(gè)別添加資產(chǎn)詞條的網(wǎng)站可以獲取到其部份資產(chǎn)信息:

但是某南沒(méi)有添加該詞條,所以獲取不到相關(guān)信息。
步驟:
先對已知網(wǎng)站進(jìn)行whois查詢(xún),我們這兒可以去微步查詢(xún)歷史whois,可以獲取到歷史的whois信息。

利用這種信息,我們就可以反查whois,獲取該注冊者/電話(huà)/郵箱下的相關(guān)域名。

我正在寫(xiě)一個(gè)腳本,即批量獲取whois->反查whois->提取關(guān)鍵信息->去重。
寫(xiě)好了我會(huì )發(fā)到github上,可關(guān)注:
我們可以直接搜索網(wǎng)站官網(wǎng),可以獲得一些頁(yè)面/頭部中富含該關(guān)鍵字的網(wǎng)站。
zoomeye:

shodan:

fofa:

此外,我們還可以借助那些搜索引擎的搜索句型來(lái)獲取資產(chǎn)。
shodan可以搜索指定公司的資產(chǎn),也可以借助特定的網(wǎng)站logo來(lái)獲取資產(chǎn)。
比如我們發(fā)覺(jué)某南的網(wǎng)站icon基本為同一個(gè),我們就可以先去搜索,獲取其帶有icon的網(wǎng)站,隨便選一個(gè)獲取hash后借助搜索句型來(lái)獲取指定icon的網(wǎng)站。

fofa可以直接借助domain關(guān)鍵字來(lái)搜索特定網(wǎng)站下的子域名:

zoomeye可以借助hostname關(guān)鍵字來(lái)獲取主機列表中的資產(chǎn):

github也可以拿來(lái)獲取資產(chǎn),但是大多數情況下還是用于獲取敏感信息(用戶(hù)名/密碼/郵箱)等。
當然也可以拿來(lái)搜索資產(chǎn):

這里推薦一款平常在用的github敏感信息采集工具:
我們可以自定義規則,來(lái)獲取自己所須要的信息。
這里還是以某南為例:
我們除了可以采集企業(yè)公眾號,還可以采集企業(yè)的小程序,因為其中大部分都是會(huì )與WEB端的插口做交互的。
公眾號:

小程序:

我們不光須要從企業(yè)網(wǎng)站中找尋該企業(yè)開(kāi)發(fā)的APP,也可以自己通過(guò)關(guān)鍵字來(lái)獲取APP,因為其中有的APP是公測的,只是上線(xiàn)了,但是還未對外公布。
以某南為例:


我們不僅直接搜索企業(yè)關(guān)鍵字外,還可以獲取其開(kāi)發(fā)者的歷史開(kāi)發(fā)記錄:

這樣循環(huán):APP->開(kāi)發(fā)者->APP
在這過(guò)程中我們常常能獲取到許多APP,后續再對其進(jìn)行相關(guān)的滲透。
我們可以使用Google/Bing/Baidu等網(wǎng)站對某個(gè)網(wǎng)站進(jìn)行資產(chǎn)采集:

當然,搭配搜索句型食用療效更佳:

之前提及了采集APP資產(chǎn),有的APP實(shí)際上并不只是使用用戶(hù)可用的那幾個(gè)插口,可能還有插口在代碼中,這時(shí)候可以用工具將這種URI提取下來(lái)。

這里推薦兩款從APK中提取有效信息的工具:
很多剛鉆洞的師父可能不太注意JS,但實(shí)際上JS中可能隱藏了很重要的插口,其中可能就存在未授權等漏洞,這里推薦同學(xué)寫(xiě)的一款從JS中提取有效域名/api的工具。
JSFINDER:
調的是LinkFinder的正則,可以循環(huán)爬取,即:
爬取domain->獲取domain主頁(yè)面下的link->獲取domain主頁(yè)面下的js->獲取link頁(yè)面下的js->解析所有js并提取出有效信息
中期
到了此步我們早已采集了企業(yè)的大部分資產(chǎn)了,剩下的就是獲取更多資產(chǎn),即子域名/IP/PORT/服務(wù)...等。
sublist3r:
這是一款很不錯的工具,調用了幾個(gè)搜索引擎以及一些子域名查詢(xún)網(wǎng)站的API,具體可以去項目頁(yè)查看。

sublist3r:
subfinder:
這款工具調用的API有很多:
Ask,Archive.is,百度,Bing,Censys,CertDB,CertSpotter,Commoncrawl,CrtSH,DnsDB,DNSDumpster,Dnstable,Dogpile,Entrust CT-Search,Exalead,FindSubdomains,GoogleTER,Hackertarget,IPv4Info,Netcraft,PassiveTotal,PTRArchive,Riddler ,SecurityTrails,SiteDossier,Shodan,ThreatCrowd,ThreatMiner,Virustotal,WaybackArchive,Yahoo
初次使用須要我們自己配置API插口的帳號/密碼/key...等。
圖片始于youtube:

subfinder:
github:
LAYER:
很早之前牧師寫(xiě)的一款工具,可以手動(dòng)過(guò)濾泛解析的域名,字典+API的形式來(lái)采集資產(chǎn),當然更多的是字典,速度也相當可觀(guān):

altdns:
這款工具我通常是到最后采集完了所以子域名并去重后使用的,他可以幫助我們發(fā)覺(jué)一些二級/三級非常隱蔽的域名。

以vivo舉例:

altdns:
關(guān)于企業(yè)IP的采集我們可以直接寫(xiě)腳本去調ip138的插口,可以獲取到當前解析IP和歷史解析IP,還是比較全的。
ip138:

獲取完企業(yè)的IP范圍以后,我們就可以用nmap/masscan等工具對其端口/服務(wù)進(jìn)行掃描,這個(gè)過(guò)程可能會(huì )有點(diǎn)久。
我們須要先判別企業(yè)是直接買(mǎi)了一個(gè)C段的IP,還是只使用一個(gè)IP,再選擇掃描整個(gè)C段或則是單個(gè)IP。
這是我之前使用nmap對某東域名批量進(jìn)行C段掃描的結果:

我們的注意力可以置于幾個(gè)WEB服務(wù)端口,和一些可能存在漏洞的服務(wù)端口,如redis/mongodb等。
至此,資產(chǎn)采集基本早已結束了,我們可以將采集到的資產(chǎn)選擇性的入庫,這樣以后獲取新資產(chǎn)時(shí)就可以對比一下是否存在。
后期
這部份可能是我寫(xiě)的最少的部份。
獲取完資產(chǎn)然后,就是苦力活了,我的步驟是,先把獲取到的資產(chǎn)丟到掃描器(awvs/nessus)里先掃一遍,避免一些沒(méi)必要的體力勞動(dòng)。
nessus主要拿來(lái)掃描端口服務(wù)的漏洞以及一些系統CVE,awvs主要拿來(lái)掃描WEB端的漏洞,如XSS/SQLI/CSRF/CORS/備份文件...等等。
指紋辨識部份可以使用云悉的,可以自己寫(xiě)個(gè)插件之后申請個(gè)API:

我都會(huì )用BBSCAN/weakfilescan來(lái)掃描網(wǎng)站中可能存在的敏感信息,如.git/.svn/備份文件等等。
BBSCAN:
weakfilescan:
之后的基本就是自動(dòng)勞動(dòng)了,對獲取到的資產(chǎn)借助已有知識一個(gè)個(gè)的測。
解決文本分類(lèi)問(wèn)題的一些機器學(xué)習最佳實(shí)踐
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2020-08-08 11:13
建立和訓練模型只是整個(gè)過(guò)程的一部分. 如果您能夠提前了解數據特征,那么對于后續的模型構建(例如更高的準確性,更少的數據和更少的計算資源)將大有裨益.
加載數據集
首先,讓我們將數據集加載到Python中:
def load_imdb_sentiment_analysis_dataset(data_path,seed = 123):
“”“加載IMDb電影評論情感分析數據集.
#個(gè)參數
data_path: 字符串,數據目錄的路徑.
seed: int,隨機數的種子.
#返回
一組訓練和驗證數據.
培訓樣本數量: 25000
測試樣本數: 25000
類(lèi)別數: 2(0負,1負)
#個(gè)引用
Mass等,
從以下位置下載并解壓縮歸檔文件:
?amaas / data / sentiment / aclImdb_v1.tar.gz
“”“
imdb_data_path = os.path.join(data_path,'aclImdb')
#加載訓練數據
train_texts = []
train_labels = []
對于['pos','neg']中的類(lèi)別:
train_path = os.path.join(imdb_data_path,'train',類(lèi)別)
對于已排序的(os.listdir(train_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(train_path,fname))作為f:
train_texts.append(f.read())
train_labels.append(0if category =='neg'else1)
#加載驗證數據.
test_texts = []
test_labels = []
對于['pos','neg']中的類(lèi)別:
test_path = os.path.join(imdb_data_path,'test',category)
對于已排序的(os.listdir(test_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(test_path,fname))作為f:
test_texts.append(f.read())
test_labels.append(0if category =='neg'else1)
#隨機排列訓練數據和標簽.
random.seed(種子)
random.shuffle(train_texts)
random.seed(種子)
random.shuffle(train_labels)
返回((train_texts,np.array(train_labels)),
?。╰est_texts,np.array(test_labels)))
檢查數據
加載數據后,最好一一檢查它們: 選擇一些樣本并手動(dòng)檢查它們是否符合您的期望. 例如,對于示例中使用的電影評論數據集,我們可以輸出一些隨機樣本來(lái)檢查評論中的情感標簽和情感是否一致.
“一個(gè)十分鐘的故事必須講兩個(gè)小時(shí). 如果沒(méi)什么大不了的話(huà),我會(huì )起身離開(kāi)的. ”
這是在數據集中標記為“否定”的注釋. 顯然,審閱者認為這部電影很拖拉,很無(wú)聊,與標簽相符.
采集關(guān)鍵指標
完成檢查后,您需要采集以下重要指標,這些指標可以幫助表征文本分類(lèi)任務(wù):
樣本數: 數據集中的樣本總數.
類(lèi)別數: 數據集中的主題或類(lèi)別數.
每個(gè)類(lèi)別中的樣本數: 如果是平衡數據集,則所有類(lèi)別應收錄相似數目的樣本;如果它是不平衡的數據集,則每個(gè)類(lèi)別中收錄的樣本數量將有很大的差異.
每個(gè)樣本中的單詞數: 這是一個(gè)文本分類(lèi)問(wèn)題,因此應計算樣本中收錄的單詞中位數.
單詞頻率分布: 數據集中每個(gè)單詞的頻率(出現次數).
樣本長(cháng)度分布: 數據集中每個(gè)樣本的分布
步驟2.5: 選擇模型
到目前為止,我們已經(jīng)對數據進(jìn)行了匯總,并且對數據的關(guān)鍵特征也有了深入的了解. 接下來(lái),基于第二步中采集的各種指標,我們將開(kāi)始考慮應使用哪種分類(lèi)模型. 這也意味著(zhù)我們將提出以下問(wèn)題: “如何將文本數據轉換為算法輸入?” (數據預處理和矢量化),“我們應該使用哪種類(lèi)型的模型?”,“我們的模型應該可行的是什么參數配置?”……
由于數十年的研究,數據預處理和模型配置的選項現在非常多樣化,但實(shí)際上有很多選項帶來(lái)了很多麻煩. 我們手頭只有一個(gè)特定的問(wèn)題,它的范圍也很廣泛,那么如何選擇最好的呢?最誠實(shí)的方法是一個(gè)接一個(gè)地嘗試過(guò)去,消除弊端,留下最好的方法,但是這種方法是不現實(shí)的.
在本文中,我們嘗試簡(jiǎn)化選擇文本分類(lèi)模型的過(guò)程. 對于給定的數據集,我們的目標只有兩個(gè): 準確性接近最高,而訓練時(shí)間則是最低的. 我們使用總共12個(gè)數據集,針對不同類(lèi)型的問(wèn)題(尤其是情感分析和主題分類(lèi)問(wèn)題)進(jìn)行了大量(?450K)實(shí)驗,交替測試了不同的數據預處理技術(shù)和不同的模型架構. 這個(gè)過(guò)程有助于我們獲得影響優(yōu)化的各種參數.
下面的模型選擇和流程圖是上述實(shí)驗的總結.
數據準備和模型算法構建
計算比率: 樣本數/每個(gè)樣本的平均單詞數
如果上述比率小于1500,請對文本進(jìn)行分段,然后使用簡(jiǎn)單的多層感知器(MLP)模型對其進(jìn)行分類(lèi)(下圖的左分支)
a. 使用n-gram模型對句子進(jìn)行分段并將單詞轉換為單詞向量
b. 根據向量的重要性得分,從向量中提取出前20,000個(gè)單詞
c. 建立MLP模型
如果上述比率大于1500,則將文本標記為序列,并使用sepCNN模型對其進(jìn)行分類(lèi)(下圖的右分支)
a. 對樣本進(jìn)行分詞,然后根據詞頻選擇前20,000個(gè)詞
b. 將樣本轉換為單詞序列向量
c. 如果比率小于1500,使用預訓練的sepCNN模型進(jìn)行詞嵌入,效果可能很好.
調整超參數以找到模型的最佳參數配置
在下面的流程圖中,黃色框代表數據和模型的準備階段,灰色框和綠色框代表過(guò)程中的每個(gè)選擇,綠色框代表“推薦選擇”. 您可以將此圖片用作構建第一個(gè)實(shí)驗模型的起點(diǎn),因為它可以以較低的計算成本提供更好的性能. 如有必要,您可以在此基礎上繼續進(jìn)行迭代改進(jìn).
文本分類(lèi)流程圖
此流程圖回答了兩個(gè)關(guān)鍵問(wèn)題:
我們應該使用哪種學(xué)習算法或模型?
我們應該如何準備數據以有效地學(xué)習文本和標簽之間的關(guān)系?
其中,第二個(gè)問(wèn)題取決于第一個(gè)問(wèn)題的答案,而我們預處理數據的方式取決于所選的特定模型. 文本分類(lèi)模型可以大致分為兩類(lèi): 使用單詞排名信息的序列模型和將文本視為一組單詞的n-gram模型. 序列模型的類(lèi)型包括卷積神經(jīng)網(wǎng)絡(luò )(CNN),遞歸神經(jīng)網(wǎng)絡(luò )(RNN)及其變體. n元語(yǔ)法模型的類(lèi)型包括邏輯回歸,MLP,DBDT和SVM.
對于電影評論數據集,樣本數/每個(gè)樣本的平均單詞數約為144,因此我們將建立一個(gè)MLP模型. 查看全部
第2步: 瀏覽數據
建立和訓練模型只是整個(gè)過(guò)程的一部分. 如果您能夠提前了解數據特征,那么對于后續的模型構建(例如更高的準確性,更少的數據和更少的計算資源)將大有裨益.
加載數據集
首先,讓我們將數據集加載到Python中:
def load_imdb_sentiment_analysis_dataset(data_path,seed = 123):
“”“加載IMDb電影評論情感分析數據集.
#個(gè)參數
data_path: 字符串,數據目錄的路徑.
seed: int,隨機數的種子.
#返回
一組訓練和驗證數據.
培訓樣本數量: 25000
測試樣本數: 25000
類(lèi)別數: 2(0負,1負)
#個(gè)引用
Mass等,
從以下位置下載并解壓縮歸檔文件:
?amaas / data / sentiment / aclImdb_v1.tar.gz
“”“
imdb_data_path = os.path.join(data_path,'aclImdb')
#加載訓練數據
train_texts = []
train_labels = []
對于['pos','neg']中的類(lèi)別:
train_path = os.path.join(imdb_data_path,'train',類(lèi)別)
對于已排序的(os.listdir(train_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(train_path,fname))作為f:
train_texts.append(f.read())
train_labels.append(0if category =='neg'else1)
#加載驗證數據.
test_texts = []
test_labels = []
對于['pos','neg']中的類(lèi)別:
test_path = os.path.join(imdb_data_path,'test',category)
對于已排序的(os.listdir(test_path))中的fname:
如果fname.endswith('. txt'):
以open(os.path.join(test_path,fname))作為f:
test_texts.append(f.read())
test_labels.append(0if category =='neg'else1)
#隨機排列訓練數據和標簽.
random.seed(種子)
random.shuffle(train_texts)
random.seed(種子)
random.shuffle(train_labels)
返回((train_texts,np.array(train_labels)),
?。╰est_texts,np.array(test_labels)))
檢查數據
加載數據后,最好一一檢查它們: 選擇一些樣本并手動(dòng)檢查它們是否符合您的期望. 例如,對于示例中使用的電影評論數據集,我們可以輸出一些隨機樣本來(lái)檢查評論中的情感標簽和情感是否一致.
“一個(gè)十分鐘的故事必須講兩個(gè)小時(shí). 如果沒(méi)什么大不了的話(huà),我會(huì )起身離開(kāi)的. ”
這是在數據集中標記為“否定”的注釋. 顯然,審閱者認為這部電影很拖拉,很無(wú)聊,與標簽相符.
采集關(guān)鍵指標
完成檢查后,您需要采集以下重要指標,這些指標可以幫助表征文本分類(lèi)任務(wù):
樣本數: 數據集中的樣本總數.
類(lèi)別數: 數據集中的主題或類(lèi)別數.
每個(gè)類(lèi)別中的樣本數: 如果是平衡數據集,則所有類(lèi)別應收錄相似數目的樣本;如果它是不平衡的數據集,則每個(gè)類(lèi)別中收錄的樣本數量將有很大的差異.
每個(gè)樣本中的單詞數: 這是一個(gè)文本分類(lèi)問(wèn)題,因此應計算樣本中收錄的單詞中位數.
單詞頻率分布: 數據集中每個(gè)單詞的頻率(出現次數).
樣本長(cháng)度分布: 數據集中每個(gè)樣本的分布
步驟2.5: 選擇模型
到目前為止,我們已經(jīng)對數據進(jìn)行了匯總,并且對數據的關(guān)鍵特征也有了深入的了解. 接下來(lái),基于第二步中采集的各種指標,我們將開(kāi)始考慮應使用哪種分類(lèi)模型. 這也意味著(zhù)我們將提出以下問(wèn)題: “如何將文本數據轉換為算法輸入?” (數據預處理和矢量化),“我們應該使用哪種類(lèi)型的模型?”,“我們的模型應該可行的是什么參數配置?”……
由于數十年的研究,數據預處理和模型配置的選項現在非常多樣化,但實(shí)際上有很多選項帶來(lái)了很多麻煩. 我們手頭只有一個(gè)特定的問(wèn)題,它的范圍也很廣泛,那么如何選擇最好的呢?最誠實(shí)的方法是一個(gè)接一個(gè)地嘗試過(guò)去,消除弊端,留下最好的方法,但是這種方法是不現實(shí)的.
在本文中,我們嘗試簡(jiǎn)化選擇文本分類(lèi)模型的過(guò)程. 對于給定的數據集,我們的目標只有兩個(gè): 準確性接近最高,而訓練時(shí)間則是最低的. 我們使用總共12個(gè)數據集,針對不同類(lèi)型的問(wèn)題(尤其是情感分析和主題分類(lèi)問(wèn)題)進(jìn)行了大量(?450K)實(shí)驗,交替測試了不同的數據預處理技術(shù)和不同的模型架構. 這個(gè)過(guò)程有助于我們獲得影響優(yōu)化的各種參數.
下面的模型選擇和流程圖是上述實(shí)驗的總結.
數據準備和模型算法構建
計算比率: 樣本數/每個(gè)樣本的平均單詞數
如果上述比率小于1500,請對文本進(jìn)行分段,然后使用簡(jiǎn)單的多層感知器(MLP)模型對其進(jìn)行分類(lèi)(下圖的左分支)
a. 使用n-gram模型對句子進(jìn)行分段并將單詞轉換為單詞向量
b. 根據向量的重要性得分,從向量中提取出前20,000個(gè)單詞
c. 建立MLP模型
如果上述比率大于1500,則將文本標記為序列,并使用sepCNN模型對其進(jìn)行分類(lèi)(下圖的右分支)
a. 對樣本進(jìn)行分詞,然后根據詞頻選擇前20,000個(gè)詞
b. 將樣本轉換為單詞序列向量
c. 如果比率小于1500,使用預訓練的sepCNN模型進(jìn)行詞嵌入,效果可能很好.
調整超參數以找到模型的最佳參數配置
在下面的流程圖中,黃色框代表數據和模型的準備階段,灰色框和綠色框代表過(guò)程中的每個(gè)選擇,綠色框代表“推薦選擇”. 您可以將此圖片用作構建第一個(gè)實(shí)驗模型的起點(diǎn),因為它可以以較低的計算成本提供更好的性能. 如有必要,您可以在此基礎上繼續進(jìn)行迭代改進(jìn).

文本分類(lèi)流程圖
此流程圖回答了兩個(gè)關(guān)鍵問(wèn)題:
我們應該使用哪種學(xué)習算法或模型?
我們應該如何準備數據以有效地學(xué)習文本和標簽之間的關(guān)系?
其中,第二個(gè)問(wèn)題取決于第一個(gè)問(wèn)題的答案,而我們預處理數據的方式取決于所選的特定模型. 文本分類(lèi)模型可以大致分為兩類(lèi): 使用單詞排名信息的序列模型和將文本視為一組單詞的n-gram模型. 序列模型的類(lèi)型包括卷積神經(jīng)網(wǎng)絡(luò )(CNN),遞歸神經(jīng)網(wǎng)絡(luò )(RNN)及其變體. n元語(yǔ)法模型的類(lèi)型包括邏輯回歸,MLP,DBDT和SVM.
對于電影評論數據集,樣本數/每個(gè)樣本的平均單詞數約為144,因此我們將建立一個(gè)MLP模型.
如何在官方帳戶(hù)上優(yōu)雅地贏(yíng)得歷史文章,喜歡,閱讀甚至評論?
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2020-08-08 10:37
也許像新邦和青博這樣的著(zhù)名平臺都提供了這樣的數據,但是價(jià)格太高了. 例如,如果要在新列表中獲得《人民日報》的所有歷史文章,則需要300個(gè)List Bean,它的價(jià)格是多少? 285元! ! !
新列表從官方帳戶(hù)中采集歷史文章
托收價(jià)格
我認為這筆費用不是大多數自媒體工作者負擔得起的,包括我曾考慮過(guò)購買(mǎi)這種服務(wù)的費用,但最終停止了. 作為開(kāi)發(fā)人員,這些問(wèn)題可以自己解決,不要浪費,因此我決定開(kāi)發(fā)像我這樣的工具,該工具可以幫助需要快速獲取官方帳戶(hù)的歷史商品數據以實(shí)現其目標的像我這樣的人更方便和經(jīng)濟,所以我有目前的公眾. 文章助手
小蜜蜂公共帳戶(hù)文章助理
助手實(shí)現的功能
輔助界面
鏈接模式
代理模式
鏈接模式是最簡(jiǎn)單的. 您只需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式需要幾分鐘的時(shí)間設置,設置完成后即可開(kāi)始采集
image.png
官方帳戶(hù)列表
采集結果列表
采集成功后,您可以在官方帳戶(hù)列表中查看采集結果,可以查看文章數量,名稱(chēng)以及一些導出文檔的操作 查看全部
我相信許多運營(yíng)工人在日常工作中會(huì )遇到這種需求,并且經(jīng)常需要研究競爭對手的官方帳戶(hù)商品數據或他們自己的官方帳戶(hù)數據. 但是,微信官方平臺無(wú)法提供如此便捷的操作. 支持導出官方帳戶(hù)數據以供研究.
也許像新邦和青博這樣的著(zhù)名平臺都提供了這樣的數據,但是價(jià)格太高了. 例如,如果要在新列表中獲得《人民日報》的所有歷史文章,則需要300個(gè)List Bean,它的價(jià)格是多少? 285元! ! !

新列表從官方帳戶(hù)中采集歷史文章

托收價(jià)格
我認為這筆費用不是大多數自媒體工作者負擔得起的,包括我曾考慮過(guò)購買(mǎi)這種服務(wù)的費用,但最終停止了. 作為開(kāi)發(fā)人員,這些問(wèn)題可以自己解決,不要浪費,因此我決定開(kāi)發(fā)像我這樣的工具,該工具可以幫助需要快速獲取官方帳戶(hù)的歷史商品數據以實(shí)現其目標的像我這樣的人更方便和經(jīng)濟,所以我有目前的公眾. 文章助手

小蜜蜂公共帳戶(hù)文章助理
助手實(shí)現的功能
輔助界面

鏈接模式

代理模式
鏈接模式是最簡(jiǎn)單的. 您只需粘貼歷史文章頁(yè)面鏈接即可一鍵采集,而代理模式需要幾分鐘的時(shí)間設置,設置完成后即可開(kāi)始采集

image.png
官方帳戶(hù)列表

采集結果列表
采集成功后,您可以在官方帳戶(hù)列表中查看采集結果,可以查看文章數量,名稱(chēng)以及一些導出文檔的操作
java/python中文分信息處理工具,沒(méi)有計算機知識的人
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 237 次瀏覽 ? 2020-08-08 09:15
1. 敏感性分析的目的是:
?。?)識別影響項目經(jīng)濟效益變化的敏感因素,分析敏感因素變化的原因,為進(jìn)一步的不確定性分析(如概率分析)提供依據;
?。?)研究不確定因素的變化范圍或極限值,例如項目的經(jīng)濟效益值的變化,并分析和判斷項目的承受風(fēng)險的能力;
?。?)比較多種選擇的敏感性,以便在經(jīng)濟利益相似的情況下,可以選擇不敏感的投資選擇.
根據每個(gè)不確定因素的變化數量,靈敏度分析可以分為單因素靈敏度分析和多因素靈敏度分析.
第二,敏感性分析的步驟
對于敏感性分析,通常請按照以下步驟操作:
1. 確定經(jīng)濟效益指標進(jìn)行分析
評價(jià)投資項目的經(jīng)濟效益指標主要包括: 凈現值,內部收益率,投資利潤率,投資回收期等.
2. 選擇不確定因素并設置變化范圍.
3. 計算不確定因素變化對項目經(jīng)濟績(jì)效指標的影響程度,并確定敏感因素.
4. 繪制靈敏度分析圖以找到不確定性因素變化的極限值.
敏感性分析是一種動(dòng)態(tài)不確定性分析,是項目評估中不可或缺的一部分. 用于分析項目經(jīng)濟效益指標對各種不確定因素的敏感性,找出敏感性因素及其最大波動(dòng)范圍,并據此判斷項目的承受風(fēng)險能力. 但是,該分析仍無(wú)法確定各種不確定因素在一定范圍內的概率,因此其分析結論的準確性將在一定程度上受到影響. 在現實(shí)生活中,可能會(huì )出現這樣的情況: 通過(guò)敏感性分析確定的敏感性因素未來(lái)不太可能發(fā)生不利變化,并且由此引發(fā)的項目風(fēng)險不大;雖然在敏感性分析中執行的另一個(gè)因素不是很敏感,但是將來(lái)發(fā)生不利變化的可能性非常高,這將導致更大的項目風(fēng)險. 為了彌補敏感性分析的不足,在項目評估和決策過(guò)程中需要進(jìn)一步的概率分析.
數據分析具有廣泛的應用范圍. 在產(chǎn)品的整個(gè)生命周期中,數據分析過(guò)程是質(zhì)量管理體系的支持過(guò)程,包括從產(chǎn)品市場(chǎng)研究到售后服務(wù)到最終處置的整個(gè)過(guò)程. 需要適當地使用數據分析來(lái)提高有效性. 國內有很多大數據分析和挖掘工具,但是其中大多數是近年來(lái)出現的大數據技術(shù),它們必須具有計算機開(kāi)發(fā)能力,并且可以立即使用. 多功能工具較少. 作為主流中文大數據分析和挖掘工具產(chǎn)品的試用版,以下推薦了一個(gè)java / python中文子信息處理工具,該工具可以在沒(méi)有計算機知識的情況下直接使用:
NLPIR大數據語(yǔ)義智能分析平臺(以前稱(chēng)為ICTCLAS)是由北京理工大學(xué)大數據搜索與挖掘實(shí)驗室主任張華平開(kāi)發(fā)的. 它滿(mǎn)足了大數據內容采集,編譯和搜索的全面需求. 它結合了精確的網(wǎng)絡(luò )采集,對自然語(yǔ)言的理解,文本挖掘和語(yǔ)義搜索的最新研究成果近二十年來(lái)不斷創(chuàng )新. 該平臺提供了多種產(chǎn)品使用形式,例如客戶(hù)端工具,云服務(wù)和二次開(kāi)發(fā)接口. 每個(gè)中間件API均可無(wú)縫集成到客戶(hù)的各種復雜應用系統中,與Windows,Linux,Android,Maemo5,FreeBSD等不同操作系統平臺兼容,并可用于Java,Python,C等各種開(kāi)發(fā),C#等語(yǔ)言用法.
NLPIR大數據語(yǔ)義智能分析平臺的十三個(gè)功能:
NLPIR大數據語(yǔ)義智能分析平臺客戶(hù)端
精確采集: 通過(guò)兩種方式實(shí)時(shí)準確地從國內外Internet上采集大量信息: 主題采集(根據信息需求進(jìn)行主題采集)和網(wǎng)站采集(給定的內部定點(diǎn)采集功能)網(wǎng)址列表).
文檔轉換: 將文本信息轉換為doc,excel,pdf和ppt等多種主流文檔格式,其效率可以滿(mǎn)足大數據處理的要求.
新詞發(fā)現: 從文本中發(fā)現新詞和概念,用戶(hù)可以將其用于專(zhuān)業(yè)詞典的匯編,還可以進(jìn)一步對其進(jìn)行編輯和標記,將其導入分詞詞典中,從而提高了詞的準確性. 分詞系統,并適應新的語(yǔ)言多樣性.
批處理單詞分割: 原創(chuàng )語(yǔ)料庫的單詞分割,自動(dòng)識別未注冊的單詞(例如名稱(chēng),地名和機構名稱(chēng)),新單詞標記和詞性標記. 然后在分析過(guò)程中,導入用戶(hù)定義的字典.
語(yǔ)言統計: 根據分段和標注的結果,系統可以自動(dòng)對一元詞的頻率進(jìn)行統計,并對二元詞的轉移概率進(jìn)行統計. 對于常用術(shù)語(yǔ),將自動(dòng)給出相應的英語(yǔ)解釋.
文本聚類(lèi): 它可以自動(dòng)分析來(lái)自大規模數據的熱點(diǎn)事件,并提供事件主題的關(guān)鍵功能描述. 它還適用于長(cháng)文本和短文本(例如,短文本和微博)的熱點(diǎn)分析.
文本分類(lèi): 根據規則或培訓方法對大量文本進(jìn)行分類(lèi),可用于新聞分類(lèi),簡(jiǎn)歷分類(lèi),郵件分類(lèi),辦公文檔分類(lèi),區域分類(lèi)等許多方面.
摘要實(shí)體: 對于單篇或多篇文章,將自動(dòng)提取內容摘要,并提取人員名稱(chēng),地點(diǎn),組織,時(shí)間和主題關(guān)鍵字;方便用戶(hù)快速瀏覽文本內容.
智能過(guò)濾: 語(yǔ)義智能過(guò)濾和文本內容審查,內置中國最完整的單詞數據庫,智能識別變形,語(yǔ)音,傳統和簡(jiǎn)體等多種變體,并在語(yǔ)義上準確消除歧義.
情感分析: 對于預先指定的分析對象,系統會(huì )自動(dòng)分析大量文檔的情感趨勢: 情感極性和情感價(jià)值測量,并在原文中給出正負分數和句子示例.
重復數據刪除: 快速,準確地確定文件集合或數據庫中是否存在具有相同或相似內容的記錄,同時(shí)查找所有重復記錄.
全文搜索: 支持各種數據類(lèi)型,例如文本,數字,日期,字符串等,多字段有效搜索,支持查詢(xún)語(yǔ)法(例如AND / OR / NOT和NEAR接近),并支持維吾爾文,藏文,蒙古語(yǔ),阿拉伯語(yǔ),韓語(yǔ)和其他少數民族語(yǔ)言的搜索.
編碼轉換: 自動(dòng)識別內容的編碼,并將編碼統一轉換為其他編碼. 查看全部
敏感性分析是指從眾多不確定因素中找出對投資項目的經(jīng)濟績(jì)效指標有重要影響的敏感因素,并分析計算對項目經(jīng)濟績(jì)效指標的影響程度和敏感性,然后是用于確定項目風(fēng)險承受能力的不確定性分析方法.
1. 敏感性分析的目的是:
?。?)識別影響項目經(jīng)濟效益變化的敏感因素,分析敏感因素變化的原因,為進(jìn)一步的不確定性分析(如概率分析)提供依據;
?。?)研究不確定因素的變化范圍或極限值,例如項目的經(jīng)濟效益值的變化,并分析和判斷項目的承受風(fēng)險的能力;
?。?)比較多種選擇的敏感性,以便在經(jīng)濟利益相似的情況下,可以選擇不敏感的投資選擇.
根據每個(gè)不確定因素的變化數量,靈敏度分析可以分為單因素靈敏度分析和多因素靈敏度分析.
第二,敏感性分析的步驟
對于敏感性分析,通常請按照以下步驟操作:
1. 確定經(jīng)濟效益指標進(jìn)行分析
評價(jià)投資項目的經(jīng)濟效益指標主要包括: 凈現值,內部收益率,投資利潤率,投資回收期等.
2. 選擇不確定因素并設置變化范圍.
3. 計算不確定因素變化對項目經(jīng)濟績(jì)效指標的影響程度,并確定敏感因素.
4. 繪制靈敏度分析圖以找到不確定性因素變化的極限值.
敏感性分析是一種動(dòng)態(tài)不確定性分析,是項目評估中不可或缺的一部分. 用于分析項目經(jīng)濟效益指標對各種不確定因素的敏感性,找出敏感性因素及其最大波動(dòng)范圍,并據此判斷項目的承受風(fēng)險能力. 但是,該分析仍無(wú)法確定各種不確定因素在一定范圍內的概率,因此其分析結論的準確性將在一定程度上受到影響. 在現實(shí)生活中,可能會(huì )出現這樣的情況: 通過(guò)敏感性分析確定的敏感性因素未來(lái)不太可能發(fā)生不利變化,并且由此引發(fā)的項目風(fēng)險不大;雖然在敏感性分析中執行的另一個(gè)因素不是很敏感,但是將來(lái)發(fā)生不利變化的可能性非常高,這將導致更大的項目風(fēng)險. 為了彌補敏感性分析的不足,在項目評估和決策過(guò)程中需要進(jìn)一步的概率分析.
數據分析具有廣泛的應用范圍. 在產(chǎn)品的整個(gè)生命周期中,數據分析過(guò)程是質(zhì)量管理體系的支持過(guò)程,包括從產(chǎn)品市場(chǎng)研究到售后服務(wù)到最終處置的整個(gè)過(guò)程. 需要適當地使用數據分析來(lái)提高有效性. 國內有很多大數據分析和挖掘工具,但是其中大多數是近年來(lái)出現的大數據技術(shù),它們必須具有計算機開(kāi)發(fā)能力,并且可以立即使用. 多功能工具較少. 作為主流中文大數據分析和挖掘工具產(chǎn)品的試用版,以下推薦了一個(gè)java / python中文子信息處理工具,該工具可以在沒(méi)有計算機知識的情況下直接使用:
NLPIR大數據語(yǔ)義智能分析平臺(以前稱(chēng)為ICTCLAS)是由北京理工大學(xué)大數據搜索與挖掘實(shí)驗室主任張華平開(kāi)發(fā)的. 它滿(mǎn)足了大數據內容采集,編譯和搜索的全面需求. 它結合了精確的網(wǎng)絡(luò )采集,對自然語(yǔ)言的理解,文本挖掘和語(yǔ)義搜索的最新研究成果近二十年來(lái)不斷創(chuàng )新. 該平臺提供了多種產(chǎn)品使用形式,例如客戶(hù)端工具,云服務(wù)和二次開(kāi)發(fā)接口. 每個(gè)中間件API均可無(wú)縫集成到客戶(hù)的各種復雜應用系統中,與Windows,Linux,Android,Maemo5,FreeBSD等不同操作系統平臺兼容,并可用于Java,Python,C等各種開(kāi)發(fā),C#等語(yǔ)言用法.

NLPIR大數據語(yǔ)義智能分析平臺的十三個(gè)功能:

NLPIR大數據語(yǔ)義智能分析平臺客戶(hù)端
精確采集: 通過(guò)兩種方式實(shí)時(shí)準確地從國內外Internet上采集大量信息: 主題采集(根據信息需求進(jìn)行主題采集)和網(wǎng)站采集(給定的內部定點(diǎn)采集功能)網(wǎng)址列表).
文檔轉換: 將文本信息轉換為doc,excel,pdf和ppt等多種主流文檔格式,其效率可以滿(mǎn)足大數據處理的要求.
新詞發(fā)現: 從文本中發(fā)現新詞和概念,用戶(hù)可以將其用于專(zhuān)業(yè)詞典的匯編,還可以進(jìn)一步對其進(jìn)行編輯和標記,將其導入分詞詞典中,從而提高了詞的準確性. 分詞系統,并適應新的語(yǔ)言多樣性.
批處理單詞分割: 原創(chuàng )語(yǔ)料庫的單詞分割,自動(dòng)識別未注冊的單詞(例如名稱(chēng),地名和機構名稱(chēng)),新單詞標記和詞性標記. 然后在分析過(guò)程中,導入用戶(hù)定義的字典.
語(yǔ)言統計: 根據分段和標注的結果,系統可以自動(dòng)對一元詞的頻率進(jìn)行統計,并對二元詞的轉移概率進(jìn)行統計. 對于常用術(shù)語(yǔ),將自動(dòng)給出相應的英語(yǔ)解釋.
文本聚類(lèi): 它可以自動(dòng)分析來(lái)自大規模數據的熱點(diǎn)事件,并提供事件主題的關(guān)鍵功能描述. 它還適用于長(cháng)文本和短文本(例如,短文本和微博)的熱點(diǎn)分析.
文本分類(lèi): 根據規則或培訓方法對大量文本進(jìn)行分類(lèi),可用于新聞分類(lèi),簡(jiǎn)歷分類(lèi),郵件分類(lèi),辦公文檔分類(lèi),區域分類(lèi)等許多方面.
摘要實(shí)體: 對于單篇或多篇文章,將自動(dòng)提取內容摘要,并提取人員名稱(chēng),地點(diǎn),組織,時(shí)間和主題關(guān)鍵字;方便用戶(hù)快速瀏覽文本內容.
智能過(guò)濾: 語(yǔ)義智能過(guò)濾和文本內容審查,內置中國最完整的單詞數據庫,智能識別變形,語(yǔ)音,傳統和簡(jiǎn)體等多種變體,并在語(yǔ)義上準確消除歧義.
情感分析: 對于預先指定的分析對象,系統會(huì )自動(dòng)分析大量文檔的情感趨勢: 情感極性和情感價(jià)值測量,并在原文中給出正負分數和句子示例.
重復數據刪除: 快速,準確地確定文件集合或數據庫中是否存在具有相同或相似內容的記錄,同時(shí)查找所有重復記錄.
全文搜索: 支持各種數據類(lèi)型,例如文本,數字,日期,字符串等,多字段有效搜索,支持查詢(xún)語(yǔ)法(例如AND / OR / NOT和NEAR接近),并支持維吾爾文,藏文,蒙古語(yǔ),阿拉伯語(yǔ),韓語(yǔ)和其他少數民族語(yǔ)言的搜索.
編碼轉換: 自動(dòng)識別內容的編碼,并將編碼統一轉換為其他編碼.


