网页抓取

【03】基础:同种网页结构套用采集规则

[亡魂溺海] 提交于 2020-04-11 18:49:49
请先安装爬虫软件。 爬虫软件安装 经过上个教程小试牛刀之后就可以尝到获得数据的喜悦了。 回顾一下,上个教程主要了解了MS谋数台的工作职责-定义采集规则,测试规则无误之后点击MS谋数台右上角的“爬数据”后弹出DS打数机,然后看到打数机窗口正在马不停蹄地抓取数据。这两个部件的工作配合地很紧密。 在学会将xml文件转成Excel之前,先解决当下的一个疑问?如果要采集其他博主主页的微博,是要重新做过规则吗?非也~ 用MS谋数台制定采集规则用了一个样本网址,既然是样本,可想而知,与样本相同结构的网页,都可以套用该规则进行采集了。 为一个采集规则添加一个相同结构的网址就是给该规则添加一个线索。 以后用该规则抓取数据的时候就会运行所有的线索而不仅仅是样本网址。 前一个教程采集微博博主主页是将宝宝主页的网址作为样本网址来制定采集规则的。宝宝之前参加过很火的《奔跑吧兄弟》,现在我想采集兄弟团所有成员的微博主页,只要将他们主页网址当成新的线索添加给之前做的“weibo_博主主页”采集规则就OK了。 怎么添加线索? 第一季兄弟团各个成员的主页网址如下: 学霸邓超: http://weibo.com/dengchao?profile_ftype=1&is_all=1#_0 大黑牛李晨: http://weibo.com/lichenlichen?profile_ftype=1&is_all=1#_0

【02】基础:单页采集(以微博博主主页采集为例)

痞子三分冷 提交于 2020-04-11 18:49:35
请先安装爬虫软件。 爬虫软件安装 ###前言 今天讲讲微博博主主页的采集。 目标是采集博主名称、微博内容、发博日期、微博内容、转发数、评论数和点赞数。 学习流程见下图—— ###一、加载页面,定义主题名 样本网址:最近很火的宝宝的微博主页 http://weibo.com/wbq?refer_flag=1001030101_&is_hot=1#_rnd1471331959489 操作参见图。 ###二、建立整理箱进行内容映射 点击操作栏中的“创建规则”,点击新建,给整理箱取一个名称,整理箱就是存放数据的地方,比如“列表”,箱子必须有,否则程序不知道把采集下来的数据放哪里。 接下来告诉整理箱要采集的数据有哪些,分别取个名字。右击“列表”,选择“添加”,选择“包容”。 输入抓取内容的名称(博主名称)之后,后点击保存。 接下来,右击“博主名称”,选择“添加”,选择“其后”,同理,输入抓取内容的名称后点击保存。 前面说了,我们要采集博主名称、微博内容、发博日期、微博内容、转发数、评论数和点赞数这些字段,那就重复上一步操作分别添加。 接下来要告诉爬虫哪些内容是想采集的(内容映射)—— 在MS谋数台的浏览器窗口,点击博主名称之后,会自动定位到网页标签中的A节点,双击展开A节点,找出包含博主名称的#text节点,我们看到文本内容窗口显示的内容是王宝宝,说明博主名称对应的节点选对了 右击

【05】中级:翻页采集(以微博博主主页采集为例)

蹲街弑〆低调 提交于 2020-04-11 18:04:07
请先安装爬虫软件。 爬虫软件安装 先回顾一下单页采集所讲到的内容。 以微博博主主页采集为例,目标是采集博主名称、微博内容、发博日期、微博内容、转发数、评论数和点赞数。 单页采集的流程共分为四步——加载页面、内容映射、样例复制、存规则和抓数据。 本次讲解的翻页采集的流程相较于单页采集而言,只增加了一个步骤,如图—— 前三个步骤与单页采集前三个步骤一样,这里不进行赘述了,可以回顾原来的文章 《【02】基础:单页采集(以微博博主主页采集为例》 。 现在重点讲解如何设定翻页采集。 四、通过‘爬虫路线’来设定翻页 通过新建爬虫路线来设定采集的翻页路线—— 跳转到爬虫路线工作台。 点击新建,创建一条线索。 选择线索类型,设置翻页线索时通常选择记号线索,本文主要介绍的就是记号线索。 勾选连贯抓取,表示在执行抓取任务时,爬虫可以在同一个DS打数机窗口内抓取完当前页面后直接跳转到下一个页面进行抓取。 勾选连贯抓取后,目标主题名自动填写当前规则主题名,在本规则内不应修改,表示翻页后继续使用当前规则进行抓取。 在爬虫路线工作台中点击定位选项。 线索定位选择偏好class。 (网页结构中的@id属性每个页面不同的几率较大,如果线索定位偏好@id,容易导致在后续的抓取中翻页失败。所以一般我们手工修改选择较为稳定不变的@class属性,作为线索定位的首选项。) 接下来的操作—— 往下滚屏,直到在网页上出现

抓取网页为图片

可紊 提交于 2020-04-06 05:51:34
论坛的提问贴,有实用价值: http://topic.csdn.net/u/20071009/10/ee7b6234-2c8b-4eeb-9b13-199f09d22303.html using System; using System.Data; using System.Windows.Forms; using System.Drawing; /// <summary> /// WebSnap :网页抓图对象 /// </summary> public class WebSnap { public WebSnap() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 开始一个抓图并返回图象 /// </summary> /// <param name="Url"> 要抓取的网页地址 </param> /// <returns></returns> public Bitmap StartSnap( string Url) { WebBrowser myWB = this .GetPage(Url); Bitmap returnValue = this .SnapWeb(myWB); myWB.Dispose(); return returnValue; } private WebBrowser GetPage( string Url

python中模拟浏览器抓取网页(-)

瘦欲@ 提交于 2020-04-03 17:52:25
对于平时我们抓取网页的内容时,比较倾向于直接利用urllib进行抓取(这里我就基于python的2.7版本进行解说,对于python3之后的版本,是将python中的urllib和urllib2和并成了urllib),但有些网站设置了防采集的功能,会拒绝爬虫进行数据的采集,这时候便可以模拟浏览器进行网页访问,然后抓取需要的数据。 下面是一个简单的访问: import urllib url="http://www.csdn.net/" html=urllib.urlopen(url) print html.read() 使用上面的程序,将会访问到csdn网站的首页并将显示此网页的源码。 我们再来看下面的例子: import urllib url="http://blog.csdn.net/beliefer/article/details/51251757" html=urllib.urlopen(url) print html.read() 在此例子中,我将网址改变了,改成访问csdn中的博客,此时便出现了下面的结果: <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx<

Python之多线程爬虫抓取网页图片的示例代码

别说谁变了你拦得住时间么 提交于 2020-03-26 11:14:01
本篇文章主要介绍了Python之多线程爬虫抓取网页图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 目标 嗯,我们知道搜索或浏览网站时会有很多精美、漂亮的图片。 我们下载的时候,得鼠标一个个下载,而且还翻页。 那么,有没有一种方法,可以使用非人工方式自动识别并下载图片。美美哒。 那么请使用python语言,构建一个抓取和下载网页图片的爬虫。 当然为了提高效率,我们同时采用多线程并行方式。 思路分析 Python有很多的第三方库,可以帮助我们实现各种各样的功能。问题在于,我们弄清楚我们需要什么: 1)http请求库,根据网站地址可以获取网页源代码。甚至可以下载图片写入磁盘。 2)解析网页源代码,识别图片连接地址。比如正则表达式,或者简易的第三方库。 3)支持构建多线程或线程池。 4)如果可能,需要伪造成浏览器,或绕过网站校验。(嗯,网站有可能会防着爬虫 😉) 5)如果可能,也需要自动创建目录,随机数、日期时间等相关内容。 如此,我们开始搞事情。O(∩_∩)O~ 环境配置 操作系统:windows 或 linux 皆可 Python版本:Python3.6 ( not Python 2.x 哦) 第三方库 urllib.request threading 或者 concurrent.futures 多线程或线程池(python3.2+) re

Http 状态码

孤人 提交于 2020-03-23 03:32:35
如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页或在 Googlebot 抓取该网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求。 此状态代码提供了有关请求状态的信息,且为 Googlebot 提供了有关您网站和请求的网页的信息。 一些常见的状态代码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器暂时不可用 以下提供了 HTTP 状态代码的完整列表。点击链接可了解详细信息。您也可以访问有关 HTTP 状态代码的 W3C 页来了解详细信息 。 1xx(临时响应) 用于表示临时响应并需要请求者执行操作才能继续的状态代码。 代码 说明 100(继续) 请求者应当继续提出请求。服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 2xx(成功) 用于表示服务器已成功处理了请求的状态代码。 代码 说明 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果您的 robots.txt 文件显示为此状态,那么,这表示 Googlebot 已成功检索到该文件。 201(已创建) 请求成功且服务器已创建了新的资源。 202(已接受) 服务器已接受了请求,但尚未对其进行处理。

Python网页抓取urllib,urllib2,httplib

亡梦爱人 提交于 2020-03-12 22:43:02
前阶段使用到ftp,写了个工具脚本 http://blog.csdn.net/wklken/article/details/7059423 最近需要抓网页,看了下 Python 抓取方式 需求:抓取网页,解析获取内容 涉及库:【重点urllib2】 urllib http://docs.python.org/library/urllib.html urllib2 http://docs.python.org/library/urllib2.html httplib http://docs.python.org/library/httplib.html 使用urllib: 1. 抓取网页信息 urllib.urlopen(url[, data[, proxies]]) : url: 表示远程数据的路径 data: 以post方式提交到url的数据 proxies:用于设置代理 urlopen返回对象提供方法: - read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样 - info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息 - getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到 - geturl()

常见HTTP状态(304,200等)

那年仲夏 提交于 2020-03-02 04:55:39
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样, Google无法验证网站几种解决办法 ,提及到由于404状态页面设置不正常,导致了 google 管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件。 如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过浏览器访问您的网页或 Googlebot 抓取网页时),服务器将会返回 HTTP 状态码响应请求。 此状态码提供关于请求状态的信息,告诉 Googlebot 关于您的网站和请求的网页的信息。 一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务器超时 下面提供 HTTP 状态码的完整列表。点击链接可了解详情。您也可以访问 HTTP 状态码上的 W3C 页获取更多信息 。 1xx (临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功

nutch2.3抓取的网页使用solr建立索引

删除回忆录丶 提交于 2020-03-01 04:01:47
1,安装solr 2,将NUTCH_HOME/runtime/local/conf/schema-solr4.xml复制到SOLR_HOME/excample/solr/collection1/conf/下,并改名为schema.xml,在文件中添加 <field name="_version_" type="long" indexed="true" stored="true"/> 3,启动hbase 如果是hbase 0.94.*的版本需要修改host 官方是这么说的: The following /etc/hosts file works correctly for HBase 0.94.x and earlier, on Ubuntu. Use this as a template if you run into trouble. 127.0.0.1 localhost 127.0.0.1 ubuntu.ubuntu-domain ubuntu 关键是下面这条命令,就会在solr中建立索引 bin/nutch solrindex http://127.0.0.1:8983/solr/ -reindex -crawlId 6vhao 来源: oschina 链接: https://my.oschina.net/u/2494265/blog/524238