RCurl网络数据抓取
观察基础信息(服务器信息和提交给服务器的信息)
d=debugGatherer()
xpath="http://123.sogou.com/"
url=getURL(xpath,debugfuNction=d$update,verbose=T)
cat(d$value()[1])#服务器地址以及端口号
cat(d$value()[2])#服务器返回的头信息
cat(d$value()[3])#提交给服务器的头信息
观察是否连接到该网址。
curl=getCurlHandle()
url=getURL(xpath,curl=curl,httpheader=myheader)
getCurlInfo(curl)$response.code
显示为200 表示获取成功。
有时候网页获取信息不全,可能是头信息导致的错误
#设置头信息
myheader<-c(
"User-Agent"="Mozilla/5.0 (Linux; U; Android 2.3.3; zh-cn; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language"="en-us",
"Connection"="keep-alive",
"Accept-Charset"="GB2312,utf-8;q=0.7,*;q=0.7"
)
xpath="http://t.dianping.com/list/guangzhou?q=%E7%94%B5%E5%BD%B1"
url=getURL(xpath,httpheader=myheader)
可以观察增加头信息和不添加头信息之间的区别
有时候网页获取信息乱码,总共三种处理方法。第一,增加参数 .encoding(观察html的编码情况) 第二,可以尝试设置头信息去解决。 第三,windows 出现乱码问题,需在Linux系统下执行
通过与XML包的结合也可以直接抓取表格信息
xpath="http://www.hbksw.com/html/13/26369.shtml"
url=getURL(xpath,httpheader=myheader,.encoding="gb2312")
write(url,"f://url.txt")
doc<-htmlParse(url,asText=T)
tables<-readHTMLTable(doc,which=4);tables
正则表达式的一些使用
# \ 转义字符 . 除了换行后的任意字符 ^ 开头 $ 结尾 * 0个或者多个
# + 一个或者多个 ? 0个或者一个
#正则表达式的匹配
pattern="[A-Za-z0-9\\._%+-]+@[A-Za-z0-9\\._%+-]+\\.[A-Za-z]{2,4}"
list=c("sunshine@.163.com","niubi","421946059@qq.com")
list1<-paste(list,collapse=",")
grepl(pattern,list)
grep(pattern,list1)
regexpr(pattern,list1)
regexec(pattern,list1)
gregexpr(pattern,list1)
通过正则表达式抓取到自己想要数据的位置,通过字符串分割去提取
RCurl网络数据抓取的更多相关文章
- Python开发笔记:网络数据抓取
网络数据获取(爬取)分为两部分: 1.抓取(抓取网页) · urlib内建模块,特别是urlib.request · Requests第三方库(中小型网络爬虫的开发) · Scrapy框架(大型网络爬 ...
- Asp.net 使用正则和网络编程抓取网页数据(有用)
Asp.net 使用正则和网络编程抓取网页数据(有用) Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </su ...
- 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api
TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...
- Android利用Fiddler进行网络数据抓包
最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...
- Twitter数据抓取
说明:这里分三个系列介绍Twitter数据的非API抓取方法.有兴趣的QQ群交流: BitCrawler网络爬虫QQ群 322937592 1.Twitter数据抓取(一) 2.Twitter数据抓取 ...
- Android利用Fiddler进行网络数据抓包,手机抓包工具汇总
Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...
- python爬虫(一)_爬虫原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上
Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...
随机推荐
- maven 使用
1. download maven from http://maven.apache.org/ 2. unzip, setup MAVEN_HOME 3. change the configurati ...
- eclipse: The superclass "javax.servlet.http.HttpServlet" was not found 解决方案
解决步骤: 1. 安装Tomcat8.5 Server 2. eclipse 新建Tomcat 8.5 Server 3. 配置build path 添加 Server Runtime 1.右键项目 ...
- 不在折腾----zookeeper-3.4.5
上传zk安装包 解压 配置(先在一台节点上配置) * 添加一个zoo.cfg配置文件 $ZOOKEEPER/conf mv zoo_sample.cfg zoo.cfg * 修改配置文件(zoo.cf ...
- first Automation
//创建一个容器 CEmbWordCntrItem * pItem = NULL; CEmbWordDoc * pDoc = GetDocument(); pItem = new C ...
- mybatis if test 不为空字符串或null
<if test="type !=null and type !=''"> AND l.type=#{type,jdbcType=INTEGER} </if> ...
- 【译】Learn ES2015——箭头函数
原文:https://babeljs.io/learn-es2015/ 理解也许有偏差,欢迎指正 箭头函数 不同于函数,箭头函数和包裹它的代码拥有同一个this.如果一个箭头函数在一个function ...
- Stack与Queue
一.Stack的方法 1. public void push(int node) 把项 压入栈顶.其作用与 addElement (node) 相同. 不一定是int,可以是节点 stack.p ...
- memcached 的简介、安装、命令
一.memcached 概述 Memcache(内存,缓存) : 是一个高性能的分布式的内存对象缓存系统.通过在内存里维护一个巨大的hash表.(key=value) Hash表 key(键) val ...
- datagrid 禁止点击行
var s = $("#dg").datagrid('getPanel'); var rows = s.find('tr.datagrid-row'); ...
- webservice服务的简单应用
本人目前刚接触到webservice服务,知道它是一个为外部提供接口的服务,下面大概讲一下webservice是如何应用的. 在此我只针对ASP.NET 讲一个是如何应用的: 1. 打开VS ,在WE ...