- 问题: 新手想询问crawler基本问题。
[软件熟悉度]:
对于R crawler接触甚短, 并不扎实, 基本上都是依照版上的例子依样画葫芦,
但如果抓取网页不同时, 立即碰壁.
[问题叙述]:
目前想抓取的资料为巴哈姆特文章做练习, 但因为html不太熟, 因而请教
版上各位大神.
[程式范例]:
## 目标是想抓某手机游戏巴哈哈拉区的20个页面中每个标题内的文章内容,
## 目前先只以第一个页面进行练习, 以下是我写的极短code,
require(xml2)
library(XML)
library(httr)
result.urls <- 'https://forum.gamer.com.tw/B.php?page=1&bsn=26742'
html.page = read_html(url(result.urls[1]))
xpath = "//*[@class='FM-blist3']/a"
target = xml_find_all(html.page, xpath)
title = xml_text(target)
download.url = unlist(xml_attr(target, "href"))
page.info = data.frame(title=title, url=download.url, stringsAsFactors = F)
## 这边成功抓取该页面的每个标题与url, 但接下来就不会直接使用page.info的
## 第二个column(url)抓取内文, 比如page.info[1, 2], 因而又按F12重新搜寻url
url1 <- '/C.php?bsn=26742&snA=32159"'
html <- htmlParse(GET('https://forum.gamer.com.tw', path = url1),
encoding = 'UTF-8')
doc <- xpathSApply(html, "//*[@id='BH-master']/div[4]", xmlValue)
## 以上code执行也没有出现error,
## 并且GET('https://forum.gamer.com.tw', path = url1)执行结果看起来也正常
## 但是doc <- xpathSApply(html, "//*[@id='BH-master']/div[4]", xmlValue)
## 的结果却是NULL.
因此主要想请问各位大大两个问题,
第一, 如何直接使用抓到的url放进到htmlParse,
第二, 请问doc <- xpathSApply(html, "//*[@id='BH-master']/div[4]", xmlValue)
这个步骤该如改进, 进而得到内文呢? 而不是空值.
谢谢各位大大耐心地看完!
这个function