R語言從小木蟲網頁批量提取考研調劑信息

来源:http://www.cnblogs.com/ywliao/archive/2017/02/22/6420501.html
-Advertisement-
Play Games

一、從URL讀取並返回html樹 1.1 Rcurl包 使用Rcurl包可以方便的向伺服器發出請求,捕獲URI,get 和 post 表單。比R socktet連接要提供更高水平的交互,並且支持 FTP/FTPS/TFTP,SSL/HTTPS,telnet 和cookies等。本文用到的函數是bas ...


一、從URL讀取並返回html樹

    1.1 Rcurl包

        使用Rcurl包可以方便的向伺服器發出請求,捕獲URI,get 和 post 表單。比R socktet連接要提供更高水平的交互,並且支持 FTP/FTPS/TFTP,SSL/HTTPS,telnet 和cookies等。本文用到的函數是basicTextGatherer和getURL。想詳細瞭解這個包的可以點擊參考資料的鏈接。

        R命令:

        h <- basicTextGatherer( )   # 查看伺服器返回的頭信息
        txt <- getURL(url, headerfunction = h$update,.encoding="UTF-8...")  # 返回字元串形式html

       參數url即為需要訪問的url這裡參數用headerfunction用到上一條命令返回的頭信息,.encoding指定網頁的編碼方式為“UTF-8"。

       網頁的編碼方式有很多,一般採用UTF-8,一些中文網頁編碼方式為“gbk",可以在瀏覽器的網頁代碼查看或者getURL返回的字元串看到。

       小木蟲網頁代碼查看

                                 

      可見小木蟲網頁編碼方式為gbk。

     1.2  XML包

       R語言XML包 具有讀取或者創建XML(HTML)文件的功能,可以本地文件也支持HTTP 或者 FTP ,也提供Xpath(XML路徑語言)解析方法。此處函數htmlparse,將文件解析為XML或者HTML樹,便於進一步數據的提取或者編輯。

        R命令:

        htmlParse(file,asText=T,encoding="UTF-8"...) #參數file 即為XML或者HTML文件名或者text,asText參數是T指定file是text,encoding指定網頁編碼方式。

 

       這裡我們需要讀取網頁,並且拿到該網頁的html樹內容

        自定義函數download,輸入strURL,strURL為網址,返回html樹內容

            download <- function(strURL){
              h <- basicTextGatherer( )# 查看伺服器返回的頭信息
              txt <- getURL(strURL, headerfunction = h$update,.encoding="gbk") ## 字元串形式
               htmlParse(txt,asText=T,encoding="gbk")      #選擇gbk進行網頁的解析
             }

二、獲得一個網頁所有的URL

    有時候我們需要進入每個網頁上的子鏈接取分析數據,這個時候可以用到XML包的getHTMLLinks函數。

    R命令:

        getHTMLLinks(doc,  xpQuery = "//a/@href"...) #doc為解析後的HTML樹文件,xpQuery指定想匹配的Xpath元素(下麵會詳細講一點Xpath基礎)。

    此處我們需要獲得小木蟲“導師招生”頁面下的所有話題鏈接。

    2.1 首先我們要獲得導師招生的第一頁,第二頁,第三頁,甚至到最後一頁的網址。

        導師招生首頁

                       

       導師招生第二頁,第三頁。

                     

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 概述 REST(Representational State Transfer表述性狀態轉移)而產生的REST API的討論越來越多,微軟在ASP.NET中也添加了Web API的功能。 我們看dudu的文章HttpClient + ASP.NET Web API, WCF之外的另一個選擇知道了博客 ...
  • 簡介: 用pyhon爬取動態頁面時普通的urllib2無法實現,例如下麵的京東首頁,隨著滾動條的下拉會載入新的內容,而urllib2就無法抓取這些內容,此時就需要今天的主角selenium。 Selenium是一個用於Web應用程式測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在 ...
  • 概念介紹: 明文指加密前的內容,反之密文指加密後的內容。 密陰指加密或解密過程中,參與運算的關鍵數據。可以是一份映射表,也可以是一些演算法參數等。 演算法指加密或解密規則。 信息涉漏包括明文,密文,密陰或演算法涉漏。任何信息通過萬維網傳輸,就等同於該信息已經涉漏。演算法,密文和密陰(私陰)都涉漏的情況下,明 ...
  • 題目1:創建一個名為Gerbil的類,該類擁有一個整數域gerbilNumber,通過構造器初始化gerbilNumber。創建方法hop()顯示該對象的gerbilNumber,以及“is hopping.” 創建一個ArrayList,並將Gerbil對象添加到該List中。用get()方法遍歷 ...
  • 1.PHP程式員玩轉Linux系列-怎麼安裝使用CentOS 2.PHP程式員玩轉Linux系列-lnmp環境的搭建 有些同學可能覺得我寫的都是啥yum安裝的,隨便配置一下而已,沒啥技術含量,我的目的是讓大家能夠以最簡單的方式實現目的,配置也是能不自定義的的統統不配置,不是為了炫耀會編譯安裝,我覺得 ...
  • OpenCL是一個並行異構計算的框架,包括intel,AMD,英偉達等等許多廠家都有對它的支持,不過英偉達只到1.2版本,主要發展自己的CUDA去了。雖然沒有用過CUDA,但個人感覺CUDA比OpenCL更好一點,但OpenCL支持面更管,CPU,GPU,DSP,FPGA等多種晶元都能支持OpenC ...
  • 上一節我們講過瞭如何在CentOS7.0下安裝MySql服務,如果沒有看到歡迎頁面的朋友,可以加我的個人微信詳聊:litao514148204 附上一節地址:http://www.cnblogs.com/riverdubu/p/6426852.html 關於php-fpm nginx本身不能處理PH ...
  • 1.base64編碼轉換 所謂base64編碼,即按照規則把字元轉化為"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"這個字元集中的字元。具體規則如下: a.把每3個位元組為一組,共24bit。每6bit一小組,每組前 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...