A. 怎么用VBA或网络爬虫程序抓取网站数据
VBA网抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模拟向服务器发送请求,接收服务器返回的数据。
优点:效率高,基本无兼容性问题。
缺点:需要借助如fiddler的工具来模拟http请求。
2、IE/webbrowser法:
创建IE控件或webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作,获取浏览器页面的数据。
优点:这个方法可以模拟大部分的浏览器操作。所见即所得,浏览器能看到的数据就能用代码获取。
缺点:各种弹窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE里根本无法实现。
3、QueryTables法:
因为它是excel自带,所以勉强也算是一种方法。其实此法和xmlhttp类似,也是GET或POST方式发送请求,然后得到服务器的response返回到单元格内。
优点:excel自带,可以通过录制宏得到代码,处理table很方便
。代码简短,适合快速获取一些存在于源代码的table里的数据。
缺点:无法模拟referer等发包头
也可以利用采集工具进行采集网页端的数据,无需写代码。
B. 请教高手,怎么爬取网站历年的数据
如果只是做收集数据使用,市面上有不少大数据采集器可以直接使用,不用花时间调试代码,有一定逻辑思维能力就可以采集到数据,一般官方也会提供教程来做参考。
C. 如何爬取网站上的某一信息
两类网站可以用不同的方法去爬取
一、开放API的网站
一个网站如果开放了API,那么就可以直接GET到它的json数据。有三种方法可以判断一个网站是否开放了API。
1、在站内寻找API入口;
2、用搜索引擎搜索“某网站API”;
3、抓包。有的网站虽然用到了ajax,但是通过抓包还是能够获取XHR里的json数据的(可用抓包工具抓包,也可以通过浏览器按F12抓包:F12-Network-F5刷新)。
二、不开放API的网站
1、如果网站是静态页面,那么可以用requests库发送请求,再通过HTML解析库(lxml、parsel等)来解析响应的text;解析库强烈推荐parsel,不仅语法和css选择器类似,而且速度也挺快,Scrapy用的就是它。
2、如果网站是动态页面,可以先用selenium来渲染JS,再用HTML解析库来解析driver的page_source。
D. 如何用Python爬虫抓取网页内容
爬虫流程
其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤
模拟请求网页。模拟浏览器,打开目标网站。
获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。
保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。
那么我们该如何使用 Python 来编写自己的爬虫程序呢,在这里我要重点介绍一个 Python 库:Requests。
Requests 使用
Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。
模拟发送 HTTP 请求
发送 GET 请求
当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求
import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>
E. 如何爬虫网页数据
爬取网页数据原理如下:
如果把互联网比作蜘蛛网,爬虫就是蜘蛛网上爬行的蜘蛛,网络节点则代表网页。当通过客户端发出任务需求命令时,ip将通过互联网到达终端服务器,找到客户端交代的任务。一个节点是一个网页。蜘蛛通过一个节点后,可以沿着几点连线继续爬行到达下一个节点。
简而言之,爬虫首先需要获得终端服务器的网页,从那里获得网页的源代码,若是源代码中有有用的信息,就在源代码中提取任务所需的信息。然后ip就会将获得的有用信息送回客户端存储,然后再返回,反复频繁访问网页获取信息,直到任务完成。
F. 如何爬取网页表格数据
网页里的表格数据可以用爬虫比如python去采集,也可以用采集器去采集网页上的表格数据会更简单些。
G. 从网站抓取数据的3种最佳方法
1.使用网站API
许多大型社交媒体网站,例如Facebook,Twitter,Instagram,StackOverflow,都提供API供用户访问其数据。有时,您可以选择官方API来获取结构化数据。如下面的Facebook Graph API所示,您需要选择进行查询的字段,然后订购数据,执行URL查找,发出请求等。
2.建立自己的搜寻器
但是,并非所有网站都为用户提供API。某些网站由于技术限制或其他原因拒绝提供任何公共API。有人可能会提出RSS提要,但是由于限制了它们的使用,因此我不会对此提出建议或发表评论。在这种情况下,我想讨论的是我们可以自行构建爬虫来处理这种情况。
3.利用现成的爬虫工具
但是,通过编程自行爬网网站可能很耗时。对于没有任何编码技能的人来说,这将是一项艰巨的任务。因此,我想介绍一些搜寻器工具。
Octoparse是一个功能强大的基于Visual Windows的Web数据搜寻器。用户使用其简单友好的用户界面即可轻松掌握此工具。要使用它,您需要在本地桌面上下载此应用程序。
http://Import.io也称为Web搜寻器,涵盖所有不同级别的搜寻需求。它提供了一个魔术工具,可以将站点转换为表格,而无需任何培训。如果需要抓取更复杂的网站,建议用户下载其桌面应用程序。构建完API后,它们会提供许多简单的集成选项,例如Google Sheets,http://Plot.ly,Excel以及GET和POST请求。当您认为所有这些都带有终身免费价格标签和强大的支持团队时,http://import.io无疑是那些寻求结构化数据的人的首要选择。它们还为寻求更大规模或更复杂数据提取的公司提供了企业级付费选项。
关于从网站抓取数据的3种最佳方法,该如何下手的内容,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。
H. 请问如何把网站的数据抓取下来
可以借助采集器软件,即使不懂代码也能采集网页上的数据,然后导出excel
I. 好大夫网站的数据怎么爬
首先来看下好大夫这个站给人第一印象如何:
1,用网站测速软件测试了下,无论电信还是网通,速度都相当的不错,截图看下,最长1.59秒,最短0.28秒左右平均0.74秒,记得国平老师在网速是如何影响SEO效果的文章里详细说明了这个速度对搜索引擎对用户是何等的重要,此为第一关。应该说做的很不错。
再来用Pagespeed分析下,得分82分,,在部分排版图片方面和图片压缩方面可以继续提高下。用pagespeed所提醒的处理方法就可以解决这里所显示的问题,对提高页面打开速度很有好处。
从haodf.com返回的头部代码里我们实际上可以看到一些不曾注意的信息
这个头文件里有一条是:X-Cache: HIT cache22.haodf.com,还有两条信息是X-Proxy: 22
从地址cache22.haodf.com我们可以发现,这是缓存地址,也就是说,打开首页如此之快是缓存在起作用,应该是负载平衡
系统在起作用,负载相对小的提供了本次访问所需要的数据。
实际上通过ping chache22.haodf.com和www.haodf.com所得到的IP地址不同就可以说明一些问题:
这个IP地址段通过查询是北京电信通所提供的。
这里的X-Cache: HIT cache22.haodf.com是缓存技术无疑,具体如何的细节了解可以去搜索下,相关技术文章解释的挺清楚。
2,再来看下域名haodf.com的相关信息:
Created: 2004-08-07 00:00:00
Expires: 2018-08-07 12:08:16
Last Modified: 2008-09-02 19:45:11
04年注册,08年续费时一次性续费十年,老域名。
3,再来看看自从域名注册了之后,此站是否一直是做医疗类的内容呢?看历史记录数据来回答你心中的疑问:
各位可以去infomall.cn里查询下看此站的历史界面,可以发现,虽然04年注册,但是直到06年左右才开始做医疗类的信息的,之前做的都是网址大全
点开05-5-14的样子看下
,
名字和内容是地地道道的网址大全,在后来的06-11-12日的样子已经是医疗方面的信息了,
具体哪个时间开始做的也许只有当事人了解了。
看完了其历史和整体信息,下面来分析下网站
首先是首页。
首页里一些明显优化的因素都不存在,首页没有任何H1 H2 H3标签,首页没有nofollow,全部链接都是有效链接没有用JS隐藏,连最下面链到备案地址的链接也是如此。
网站title description keywords(可有可无)的数据分别是:
最重要的标题部分是:好大夫在线_中国最大的医疗网站
结构是 品牌_行业解释
这里的title没有堆砌任何关键字,比如疾病名称、比如药物名称、比如医院名称等,就是说明自己的品牌:好大夫在线,及好大夫在线是中国最大的医疗网站
关键字部分可有可无,加了可以增加品牌关键字密度
描述部分是详细说明网站所提供的服务。这里对品牌的强调有点可以学习的是:前面出现的是&#8220;好大夫在线,中国最大的医疗网站。&#8221;紧接着出现的是&#8220;好大夫提供...&#8221;,将好大夫在线和好大夫分别强调一下,以增强品牌。
这里的首页部分安排实际上对大站来说是最合理的,因为首页只需要解决用户慕名而来也就是直接搜索好大夫或者好大夫在线即可,那么多的疾病名称医院名称什么的可以直接交给数量庞大的内页来完成,从而很好的把权重内移,共同取得排名和流量。
复制代码
接着来分析下整个首页的HTML代码传达了怎么样的优化手法:
一些可能影响网站打开速度的都用其他的方法来规避了:1,就是外部CSS文件、JS文件和排版图片可以充分保证主站打开时HTML代码可以出来,外部CSS也同时被用户自己的浏览器调用来加速页面打开速度。
同时,我们PING 下看hdfimg.com域名
可以发现,其IP地址和主站及缓存类的是在一个IP地址段,也就是都在219.238.150这个段IP地址里,应该是同一个机房另一台机器专门在处理CSS、JS和排版图片。
分工明确的几台服务器同时处理用户的需求加速了网站打开的时间,不错!
(也考虑过是一台大服务器捆绑了多个IP地址,不过想来这么大的站应该会分工非常明确,将大问题化为很多小的问题来逐个优化达到总体效果最佳,也便于故障时进行排查)
除了CSS、JS、排版图片是单独用hdfimg.com域名来提供数据,另一个图片出现的情况就是新闻文章或者产品或者介绍等等正文里出现,那么这种图片haodf是如何处理的呢?
通过查看源代码,直接发现了另一个域名:n1.haodf.com,是存放的医生的头像。
从以上这两个域名hdfimg.com和n1.haodf.com的分析可以看出,好大夫在影响网站打开速度方面的处理真是细致入微,将可能的外在因素全部解决,值得学习!
复制代码
再仔细检查每个链接,可以发现,很多内容性的东西,全部采用二级域名来跑。
比如某个医生的访问地址是drsunkun.haodf.com,其中drsunkun是医生注册的用户名。
某个地区的访问地址比如江苏:jiangsu.haodf.com,其他省区的类似,均才用二级域名的形式来跑。
而疾病名称、医院名称、咨询信息、专家文章、看病经历、感谢信都没有使用二级域名,而是直接以www.haodf.com/二级目录名/页面名.htm
这里二级目录名总共有这几个:hospital表示医院,faculty表示医院科室,jibing表示全部疾病,zhuanjiaguandian是专家文章观点,wenda是咨询问答,doctor是看病经验和感谢信,info是联系信息及自我介绍。
页面名中医院的名称是随机生成的名字,疾病那里是疾病的拼音,问答那里是医生拼音_随机数字,这里的页面名除了疾病名称可能有人搜索拼音之外医生名医院名和问答没有规律可言对整体没有影响。
疾病名称用拼音搜索时网络也会提醒你是搜索的可能是什么中文内容,比如搜索buyunbuyu,网络就知道你搜索的是不孕不育,所以目录里的拼音对优化的作用可以不必太过考虑,但对用户的友好度还是不错的,看拼音总比看一堆乱七八糟的随机字母数据要舒服的多。
复制代码
三级目录有:汇总了各种疾病所对应不同医院的医生,省区医院列表更多
使用二级域名的总共有:省区所包含医院、网上咨询、预约、医生注册帐号、权威专家观点专题、400咨询、帮助等等
没有完全全部罗列出来,仅以目前以上的数据来分析下,为什么这么安排。
为什么一些数据使用二级域名一些数据还是在主域名下用二级目录来存放,原因应该就是跟流量有关。
为此,我们通过实际数据来说明下放目录下的流量和放二级目录下的流量对比。
拿出火车头采集爱站里前50页总计1250条记录,可以发现
二级域名无论在排名还是流量搜索量方面都比根目录下的要少的多的多
复制代码
附件是采集的爱站显示出来的好大夫网址:
为何好大夫站要如此安排链接?说到底肯定是为了权重为了排名为了流量
我们来看下二级域名的页面里都发生了些什么:
先拿罗列了全部江苏的医院的二级域名jiangsu.haodf.com来看他的页面里都发生了些什么事情。
这个页面里除了Head部分跟网站首页一样,之外,里面都有哪些链接类型和内容呢?
1,全江苏省各个市县的医院,里面链接的目的地由医院、问答、医院科室、医生链接(二级域名)、医生评价、咨询(二级域名)、全国地区导航(二级域名),而医院、问答类所占篇幅是最大的。
2,再看数量巨大的医生的二级域名页面都含有什么样的数据:专家观点的文章二级目录类的、问答咨询也是二级目录类的、医生主治的疾病名称链接还是二级目录类的
3,再看下400.haodf.com咨询类的页面,链接主要是去此医生二级域名页下的咨询页,那么进入此二级域名页下的咨询页查看,可以看到,这里的链 接主要类型是:其他医生二级域名页、医生自己的二级域名页、问答咨询页二级目录类、相关专题文章二级域名类以及此疾病相关的推荐医院二级目录类的。
看完网站链接结构,我们来看下内容以及外链部分。
搜索一个竞争压力山大的词&#8220;整形&#8221;,在网络里排第一,链接地址是www.haodf.com/jibing/zhengxing.htm,我们来看下这个词的页面内容。首先看下H1 H2,这里好大夫竟然使用了3个H1,大站里第一次见过同时使用3个H1的,截图如下
三个H1的标签写法是:
<h1>整形专家观点</h1>
<h1>相关疾病-<span title="整形">整形</span></h1>
<h1>最近在线大夫-<span title="整形">整形</span></h1>
H2部分写法是:
<h2> <a href="http://www.haodf.com/jibing/zhengxing.htm" title="整形首页">整形</a> <span class="font16" style="color:#000;"></span></h2>
<H1>部分强调整形,同时使用小技巧<span>的title标签来加强关键字,提升关键字密度和频率。
复制代码
整个页面里&#8220;整形&#8221;这个词出现的非常频率非常之高,同时分布也很平均,从左到右从上到下,不断的进行重复和强调。
复制代码
标题里出现两次,正文部分出现88次,描述里出现1次。那么再分析下此页的外链情况:122929,12万多的链,除去站内的再算下看:1218
12万多的链接全部是来自内部!而剩余的1218纯外部链接中,有80%以上都是别的站的文章页,也就是通过转载好大夫的文章而自然产生外链,转载的站大部分都是跟医疗整形有关的,多么高质量的相关站链接,指向的目标页面又是惊心优化的,想没有好的排名也难啊!
复制代码
分析好大夫站发现,通常建议的1个H1 多个H2 H3 H4的规律在这里并不适用,好大夫的一些排名靠前的页面里,使用H1跟使用H2 H3一样,同时使用就是几个,如图医院介绍主页
四个H1当作H2来使用。