2012-01-22 27 views
6

Tôi gặp sự cố mã hóa với gói readHTMLTable và XML nói chung. Tôi muốn tải xuống một số bảng từ trang web đánh bóng allegro.pl (trang đấu giá tương tự như ebay), nhưng sau đó, có sự cố mã hóa với phông chữ đánh bóng, ngay cả khi tôi đã sử dụng mã hóa = "UTF-8" hoặc stringsAsFactors = F in readHTMLTable.đọcHTMLTable và mã hóa UTF-8

Code:

library(XML) 
url<-paste("http://allegro.pl/listing.php/search?category=15821&sg=0&p=",1:5,"&string=facebook",sep="") 

alldata<-NULL 

for (i in 1:5){ 
dane<-as.data.frame(readHTMLTable(url[i],1,stringsAsFactors = TRUE, encoding="UTF-8")$lista) 
alldata<-rbind(alldata,dane) 
} 

Kết quả:

> head(alldata[,c(2,3)]) 
                 V2      V3 
1  Facebook Fan Page z ANIMACJĄ indywidualny projekt Kup Teraz! 150,00 zł 
2 Lubię to! Facebook! OKAZJA!!! 160 FANĂ“W!!! ZOBACZ! Kup Teraz! 10,99 zł 
3 125 fanĂÂłw fani like fanpage FACEBOOK polskie konta Kup Teraz! 10,00 zł 
4 Reklama Fanpage 43500+ fanĂÂłw, fani, facebook Efekt Kup Teraz! 17,99 zł 
5  Facebook Fanpage -Stworzenie Profesjonalnego Konta Kup Teraz! 77,90 zł 
6  Facebook Fanpage -Skuteczna Obsługa/Reklama /FV Kup Teraz! 100,00 zł 

Nếu tôi sử dụng getURL hoặc readlines không có vấn đề nhưng tôi muốn sử dụng gói XML, beacuse đó là điều tuyệt vời :)

Luôn có vấn đề này khi tôi sử dụng các hàm gói XML như htmlParse, xpathApply hoặc đã đề cập readHTMLTable.

Tôi đang làm việc trên Rstudio 0.94.110 @ Windows7. SessionInfo bên dưới.

R version 2.14.0 (2011-10-31) 
Platform: x86_64-pc-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 LC_MONETARY=Polish_Poland.1250 LC_NUMERIC=C     LC_TIME=Polish_Poland.1250  

attached base packages: 
[1] splines stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] spdep_0.5-41  coda_0.14-6  deldir_0.0-16 maptools_0.8-10 foreign_0.8-46 nlme_3.1-102  Matrix_1.0-1  lattice_0.20-0 boot_1.3-3  
[10] sp_0.9-91  maps_2.2-2  RCurl_1.7-0.1 bitops_1.0-4.1 XML_3.4-2.2  Cairo_1.5-1  car_2.0-11  survival_2.36-10 nnet_7.3-1  
[19] MASS_7.3-16  

loaded via a namespace (and not attached): 
[1] grid_2.14.0 tools_2.14.0 

Trả lời

4

một thời gian tôi đã gửi thư với Duncan Temple Lang, người tạo gói XML. Hôm qua (30.01.2012), ông đã tải lên phiên bản mới của gói XML trên trang web Omegahat. Phiên bản mới 3.9-4 cho phiên bản 31bit của R loại bỏ vấn đề mã hóa này! :)

tải về gói hình thức liên kết dưới đây: http://www.omegahat.org/R/bin/windows/contrib/2.14/

library(XML) 
url<-paste("http://allegro.pl/listing.php/search?category=15821&sg=0&p=",1:5,"&string=facebook",sep="") 
doc = htmlParse(url[1], encoding = "UTF-8") 
z = as.data.frame(readHTMLTable(doc, stringsAsFactors = FALSE)$lista) 

Nó hoạt động, vì vậy chúng tôi có thể đóng chủ đề này. :)

Các vấn đề liên quan