2016-11-29 10 views
5

मैं बस rvest::html_nodes() का उदाहरण दोहराने, अभी तक एक त्रुटि का सामना करने के लिए कोशिश कर रहा हूँ:आर rvest: नहीं पा सके समारोह "xpath_element"

library(rvest) 
ateam <- read_html("http://www.boxofficemojo.com/movies/?id=ateam.htm") 
html_nodes(ateam, "center") 

Error in do.call(method, list(parsed_selector)) : could not find function "xpath_element"

एक ही होता है अगर मैं इस तरह के httr के रूप में संकुल लोड करते हैं, xml2, selectr। मुझे लगता है कि इन पैकेजों का नवीनतम संस्करण भी है ...

किस पैकेज में xpath_element, xpath_combinedselector स्थित हैं? मैं इसे काम पर कैसे लगाऊं? ध्यान दें कि मैं उबंटू 16.04 पर चला रहा हूँ, ताकि कोड अन्य प्लेटफार्मों पर काम कर सकते हैं ...

+0

शायद आर सिर्फ जानता है आप सेवा के एक साइट की शर्तों का उल्लंघन कर रहे हैं और आप सिर्फ मदद करने के लिए (जो की मदद सामग्री चोरी सक्षम के बारे में सोच किसी के लिए कार्रवाई का एक अच्छा कोर्स होगा) मना कर दिया। – hrbrmstr

+0

आपका कोड मेरे लिए काम करता है। क्या आपने आर और पैकेज अपडेट किए हैं? – cory

+0

@cory की जांच के लिए धन्यवाद! आप किस मंच/आर संस्करण पर हैं? – Matifou

उत्तर

1

रूप @tbrugz से कहा, इस मुद्दे प्रपत्र पैकेज selectr आ रहा है।

ऐसा तब होता है जब पैकेज apt-get install r-cran-selectr के साथ स्थापित किया जाता है। सुडो आर के साथ पैकेज स्थापित करना, फिर install.packages ठीक काम करता है।

pkg <- installed.packages() 
subset(as.data.frame(pkg), Package=="selectr", c("Package", "LibPath")) 
     Package           LibPath 
    selectr selectr /home/matifou/R/x86_64-pc-linux-gnu-library/3.3 
    selectr.1 selectr       /usr/lib/R/site-library 
library(selectr, lib.loc="/home/matifou/R/x86_64-pc-linux-gnu-library/3.3") 
css_to_xpath(".testclass") 
    [1] "descendant-or-self::*[@class and contains(concat(' ', normalize- space(@class), ' '), ' testclass ')]" 

detach("package:selectr", unload=TRUE) 

library(selectr, lib.loc="/usr/lib/R/site-library") 
css_to_xpath(".testclass") 
    Error in do.call(method, list(parsed_selector)) : 

समारोह "xpath_class"

2

मैं समझता हूँ कि इस मुद्दे को नहीं बल्कि पुरानी है नहीं मिल सकता है, लेकिन मैं जो इसी तरह के मुद्दों हो सकता है के लिए एक टिप्पणी पोस्ट करना चाहता था।

मैं this same error पर ठोकर खाई और बहुत मदद पाने में असमर्थ था। इसलिए, मैंने सोचा कि सीएसएस को लक्षित करने के बजाय मैं xpath को लक्षित करने का प्रयास करूंगा। मुझे नहीं पता कि सबसे अच्छा अभ्यास क्या है।

मेरे मूल कार्यों ने उबंटू 16, आर 3.4.0 पर ठीक काम किया। हालांकि, वे डेबियन 8 आर 3.3.3 और आर 3.4.0 पर असफल रहे।

जब मैंने सीएसएस के बजाय xpaths को लक्षित करने के लिए अपना कोड संशोधित किया, तो उन्होंने अपेक्षा के अनुसार काम करना शुरू कर दिया। उदाहरण के लिए, इस

contents <- link %>% 
    xml2::read_html() %>% 
    rvest::html_nodes(css = "pre") %>% 
    rvest::html_text() 
इस के लिए

...

contents <- link %>% 
    xml2::read_html() %>% 
    rvest::html_nodes(xpath = "//pre") %>% 
    rvest::html_text() 

मेरी समस्या का समाधान बदलते ...।

0

मैंने rvests आयात पर भरोसा करने के बजाय xml2 को सीधे अपने स्थानीय आर लाइब्रेरी में अपडेट करके हल किया।

install.packages("xml2")

संबंधित मुद्दे