r语言怎么抓取网页数据

Python014

r语言怎么抓取网页数据,第1张

如果用Python或者C#可能更容易。但是R本身也有很强的处理功能。

用regular expression. 将html的source打开,比如可以将其按照txt的格式打开。里面的编码都是有规律的,接下来用regular experssion打开。比较常用的函数gsub, strsplit, grep等,可以看帮助文件。

R可以在网页上抓取数据,一种途径是使用函数readlines()下载网页,然后使用如grep()和gsub()一类的函数处理,对于结构复杂的网页,可以使用RCurl和XML包来提取其中想要的信息。

更多信息和示例,参考在Programming with R上找到的“Webscraping Using ReadLines and Rcurl”一文;

方法/步骤fromurllib.requestimporturlopen用于打开网页fromurllib.errorimportHTTPError用于处理链接异常frombs4importBeautifulSoup用于处理html文档importre用正则表达式匹配目标字符串例子用关于抓取百度新闻网页的某些图片链接fromurllib.requestimporturlopenfromurllib.errorimportHTTPErrorfrombs4importBeautifulSoupimportreurl="/"try:html=urlopen(url)exceptHTTPErrorase:print(e)try:bsObj=BeautifulSoup(html.read())images=bsObj.findAll("img",{"src":re.compile(".*")})forimageinimages:print(image["src"])exceptAttributeErrorase:print(e)importjava.io.BufferedReaderimportjava.io.IOExceptionimportjava.io.InputStreamReaderimportjava.net.HttpURLConnectionimportjava.net.MalformedURLExceptionimportjava.net.URLpublicclassCapture{publicstaticvoidmain(String[]args)throwsMalformedURLException,IOException{StringstrUrl="/"URLurl=newURL(strUrl)HttpURLConnectionhttpConnection=(HttpURLConnection)url.openConnection()InputStreamReaderinput=newInputStreamReader(httpConnection.getInputStream(),"utf-8")BufferedReaderbufferedReader=newBufferedReader(input)Stringline=""StringBuilderstringBuilder=newStringBuilder()while((line=bufferedReader.readLine())!=null){stringBuilder.append(line)}Stringstring=stringBuilder.toString()intbegin=string.indexOf("")intend=string.indexOf("")System.out.println("IPaddress:"+string.substring(begin,end))}