1. 程式人生 > >【R語言 爬蟲】用R爬蟲,爬取杭州安居客九堡租房資訊

【R語言 爬蟲】用R爬蟲,爬取杭州安居客九堡租房資訊

在當今網際網路時代,資料要會挖,得先學會爬!爬的過程是痛苦的,因為在計算機程式開發領域,網路爬蟲的開發是一個很專業的方向,技術門檻比較高,它所要求的綜合知識很多,相信很多同學都望而卻步了。別急,說話說到後面往往都有但是滴。
但是該領域的幾個非常方便的工具已經被整合到R的一些第三方包中了,所以我們完全可以基於R用一種很容易實現的方式來實現網際網路資料的抓取,讓我們可以直接去挖掘網際網路這座金礦。
有了XML包,RCurl包,尤其是最近新出的rvest包(聽說簡直就是神器,是不是吹的呢),媽媽再也不用擔心我的資料了。
今天下午學了一下RCurl包,很抱歉沒有太多中文文件,看英語學來的,英語真的很重要,誰讓程式設計軟體都是由老外開發的呢,爬取了杭州安居客九堡租房資訊,瞎操練的,實踐出真知,慢慢懂了。。。
坑爹的地方真多,不同情況不同處理方法,還有有的網站URL本身就是加密的,如淘寶的https,還有些網頁需要登入之後才能檢視,有的網頁甚至你點它的下一頁,url居然還一樣,原始碼不變的,真是百思不得姐了。為什麼沒有大神寫一本書,我給它起叫做,《那些年,爬蟲我們遇到過的坑》。

data:2015-11-7
author:laidefa

library(XML)
library(RCurl)
loginURL<-"http://hz.zu.anjuke.com/fangyuan/jiubao/"
cookieFile<-"E://cookies.txt"
loginCurl<-getCurlHandle(followlocation=TRUE,verbose=TRUE,ssl.verifyhost=FALSE,
ssl.verifypeer=FALSE,cookiejar=cookieFile,cookiefile=cookieFile)

#獲取第一頁的url
web<-getURL(loginURL,curl=loginCurl) #獲取第2-10頁的url url_list = "" i=1:9 url_list[i]<-paste0('http://hz.zu.anjuke.com/fangyuan/jiubao/p',i+1,'/') #迴圈讀取url for(url in url_list){ web1 <-getURL(url,curl=loginCurl) web<-rbind(web,web1) } #解析url樹結構 doc<-htmlParse(web) zufang_title<-sapply(getNodeSet(doc,"//div[@class
='zu-info']//h3//a[@title]"
),xmlValue) type<-sapply(getNodeSet(doc,"//div[@class='zu-info']//p[1]"),xmlValue) address<-sapply(getNodeSet(doc,"//div[@class='zu-info']//address"),xmlValue) address<-substring(address,34) price<-sapply(getNodeSet(doc,"//div[@class='zu-side']//p[1]"),xmlValue) price<-price[-seq(53,520,53)] contacts<-sapply(getNodeSet(doc,"//p[@class='bot-tag']//span[1]"),xmlValue) #合併資料框 data<-data.frame(zufang_title,price[-503],type,contacts,address) View(data)

這裡寫圖片描述

相關推薦

R語言 爬蟲R爬蟲杭州安居租房資訊

在當今網際網路時代,資料要會挖,得先學會爬!爬的過程是痛苦的,因為在計算機程式開發領域,網路爬蟲的開發是一個很專業的方向,技術門檻比較高,它所要求的綜合知識很多,相信很多同學都望而卻步了。別急,說話說到

爬蟲002 python3 +beautifulsoup4 +requests 靜態頁面

bgcolor img err 預覽 政府 bold 技術 貴的 頁面元素 實驗環境: win7 python3.5 bs4 0.0.1 requests 2.19 實驗日期:2018-08-07 爬取網站:http://www.xhsd.cn/ 現在的網站大多有復雜

Python3爬蟲使用Fidder實現APP

telerik tail 實現 鏈接 端口號 dpi () vco 軟件 之前爬取都是網頁上的數據,今天要來說一下怎麽借助Fidder來爬取手機APP上的數據。 一、環境配置 1、Fidder的安裝和配置 沒有安裝Fidder軟件的可以進入這個網址下載,然後就是傻瓜式的

Python爬蟲Scrapy框架運用1—豆瓣電影top250的電影資訊(1)

一、Step step1: 建立工程專案 1.1建立Scrapy工程專案 E:\>scrapy startproject 工程專案 1.2使用Dos指令檢視工程資料夾結構 E:\>tree /f step2: 建立spid

C語言練習題編寫一個程式它從標準輸入讀取C原始碼並驗證所有花括號都正確成對出現

《C和指標》課後練習題   問:編寫一個程式,它從標準輸入讀取C原始碼,並驗證所有花括號都正確成對出現。   程式碼 思路:在while迴圈條件中讀取我輸入的字元,只有當輸入緩衝區沒有資料或者我這裡產生回車符'\n'時,才會判斷條件不成立。c

C語言練習題編寫一個函式它從一個字串中提取一個子字串

《C與指標》 習題 4.14   編寫一個函式,它從一個字串中提取一個子字串。函式原型如下: int substr(char dst[], char src[],int start, int l

爬蟲系列(2)-----pythonCSDN博首頁所有文章

成功 -name 保存 eas attr eve lan url att 對於Python初學者來說,爬蟲技能是應該是最好入門,也是最能夠有讓自己有成就感的,今天在整理代碼時,整理了一下之前自己學習爬蟲的一些代碼,今天上第2個簡單的例子,python爬取CSDN博客首頁所有

爬蟲鏈家網北京二手房資訊

# 鏈家網二手房資訊爬取 import re import time import requests import pandas as pd from bs4 import BeautifulSoup url = 'http://bj.lianjia.com/ershouf

python搭建簡單爬蟲框架獵聘網的招聘職位資訊

該專案將主要有五個部分負責完成爬取任務,分別是:URL管理器,HTML下載器,HTML解析器,資料儲存器,爬蟲排程器。 具體程式碼如下: URL管理器: import hashlib import pickle import time class UrlManag

初識Scrapy框架+爬蟲實戰(7)-鏈家網100頁租房資訊

Scrapy簡介 Scrapy,Python開發的一個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。Scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。Scrapy吸引人的地方在於它是一個框架,任何人都可以根

爬蟲(進階)網頁資訊並寫入json檔案

import requests # python HTTP客戶端庫,編寫爬蟲和測試伺服器響應資料會用到的類庫 import re import json from bs4 import BeautifulSoup import copy print('正在爬取網頁連結……'

Python3爬蟲Python實現發送天氣預報郵件

int 字符串 開發者工具 height window 1.0 需要 targe 沒有 此次的目標是爬取指定城市的天氣預報信息,然後再用Python發送郵件到指定的郵箱。 一、爬取天氣預報 1、首先是爬取天氣預報的信息,用的網站是中國天氣網,網址是http://www.

Python3爬蟲Python實現傳送天氣預報郵件

此次的目標是爬取指定城市的天氣預報資訊,然後再用Python傳送郵件到指定的郵箱。   一、爬取天氣預報 1、首先是爬取天氣預報的資訊,用的網站是中國天氣網,網址是http://www.weather.com.cn/static/html/weather.shtml,任意選擇一個城市(比如武漢

機器學習演算法基於R語言的多元線性迴歸分析

多元線性迴歸的適用條件: (1)自變數對應變數的變化具有顯著影響 (2)自變數與應變數間的線性相關必須是真實的,而非形式上的 (3)自變數之間需有一定的互斥性 (4)應具有完整的統計資料 訓練資料:csv格式,含有19維特徵 資料下載地址:http://pan.baidu

資料分析 R語言實戰學習筆記 第六章 引數估計與R實現(上)

6.1點估計及R實現 6.1.1矩估計 R中的解方程函式: 函式及所在包:功能 uniroot()@stats:求解一元(非線性)方程 multiroot()@rootSolve:給定n個(非線性)方程,求解n個根 uniroot.all()@rootSolve:

R語言 函式R語言聚合函式總結

> rm(list=ls()) > > > # 聚合函式學習 > data(iris) > ##tapply 分組求和 > (aa<-tapply(i

R語言入門R語言中的變數與基本資料型別

## 說明 在前一篇中,我們介紹了 `R` 語言和 `R Studio` 的安裝,並簡單的介紹了一個示例,接下來讓我們由淺入深的學習 `R` 語言的相關知識。 本篇將主要介紹 `R` 語言的基本操作、變數和幾種基本資料型別,好對 `R` 語言的使用方法有一個基本的概念。通過本篇的學習,你將瞭解到: 1.

C語言程序戶輸入一句話輸出這句話中每個單詞含有多少個字母

get mage 一句話 printf png es2017 urn bsp can #include <stdio.h>#define N 100 //宏定義,用N表示100 int main(int argc, char *argv[]) { int i

解決ubuntu anaconda 安裝R 語言後,無法安裝R語言package的問題

info={ 系統:ubuntu 17.10 } 錯誤提示 * installing *source* package ‘quadprog’ ... ** 成功將‘quadprog’程式包解包並MD5和檢查 ** libs /home/longsent/anaconda3/bin/

快樂程式設計大本營java語言訓練班 6課:java的物件和類程式設計

快樂程式設計大本營【java語言訓練班】 6課:用java的物件和類程式設計 第1節. 什麼是物件和類 第2節. 物件的屬性和方法 第3節. 類的繼承 第4節. 使用舉例:建立類,定義方法,定義屬性 第5節. 使用舉例:建立物件,屬性賦值與使用,方法呼叫; 第6節. 使用舉例:類繼承及物件使用 地址如下