rvest का उपयोग कर रहा पेज http://www.radiolab.org/series/podcasts से जानकारी स्क्रैप करने का rvest
पैकेज का उपयोग कर रहा लिंक।के बाद "अगला" संबंधित पथ के साथ
html_session("http://www.radiolab.org/series/podcasts") %>% follow_link("Next")
## Navigating to
##
## ./2/
## Error in parseURI(u) : cannot parse URI
##
## ./2/
: प्रथम पृष्ठ scraping के बाद, मैं, तल पर "अगला" लिंक का अनुसरण करें कि दूसरे पृष्ठ स्क्रैप, तीसरे पेज पर ले जाने, आदि
निम्न पंक्ति एक त्रुटि देता है करना चाहते हैं वहाँ एचटीएमएल शो निरीक्षण के आसपास "./2/" कुछ अतिरिक्त cruft है कि rvest
जाहिरा तौर पर पसंद नहीं करता:
html("http://www.radiolab.org/series/podcasts") %>% html_node(".pagefooter-next a")
## <a href=" ./2/ ">Next</a>
.Last.value %>% html_attrs()
## href
## "\n \n ./2/ "
प्रश्न 1: मैं कैसेप्राप्त कर सकते हैं इस लिंक का सही ढंग से मेरे ब्राउज़र की तरह व्यवहार करने के लिए 0? follow_link
कोड के अंत में (मैं मैन्युअल रूप से "अगला" लिंक हड़पने सकता है और यह साफ regex के साथ है, लेकिन rvest
के साथ प्रदान की स्वचालन का लाभ लेने के पसंद करते हैं।)
, यह jump_to
कहता है। तो मैं निम्नलिखित की कोशिश की:
html_session("http://www.radiolab.org/series/podcasts") %>% jump_to("./2/")
## <session> http://www.radiolab.org/series/2/
## Status: 404
## Type: text/html; charset=utf-8
## Size: 10744
## Warning message:
## In request_GET(x, url, ...) : client error: (404) Not Found
कोड में खुदाई, ऐसा लगता है कि इस मुद्दे को जो dirname
का उपयोग करता है मूल पथ के अंतिम भाग ("/ पॉडकास्ट") बंद पट्टी, XML::getRelativeURL
साथ है:
XML::getRelativeURL("./2/", "http://www.radiolab.org/series/podcasts/")
## [1] "http://www.radiolab.org/series/./2"
XML::getRelativeURL("../3/", "http://www.radiolab.org/series/podcasts/2/")
## [1] "http://www.radiolab.org/series/3"
प्रश्न 2: मैं कैसे rvest::jump_to
और XML::getRelativeURL
सही ढंग से संबंधित पथ को संभालने के लिए मिल सकता है?
देव संस्करण स्थापित करें जहां यह बग तय किया गया है – hadley
ठीक है दूसरी बग है; कच्चे माल की जादुई मरम्मत की जा रही है। – hadley