怎么写一个爬虫

1.如何自己写一个网络爬虫

网络爬虫以叫网络蜘蛛,网络机器人,这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。

从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做的事情。下面一个简单的流程:

在这里,我们只是说一下如何写一个网页抓取程序。首先我们先看一下,如何使用命令行的方式来找开网页。telnet somesite.com 80

get /index.html 文法,甚至还需要解析javascript,因为现在的网页使用ajax的越来越多了,而很多网页内容都是通过ajax技术加载的,因为,只是简单地解析html

2.如何自己写一个网络爬虫

网络爬虫以叫网络蜘蛛,网络机器人,这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。

从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做的事情。下面一个简单的流程:

在这里,我们只是说一下如何写一个网页抓取程序。

首先我们先看一下,如何使用命令行的方式来找开网页。

telnet somesite.com 80

GET /index.html HTTP/1.0

按回车两次

使用telnet就是告诉你其实这是一个socket的技术,并且使用HTTP的协议,如GET方法来获得网页,当然,接下来的事你就需要解析HTML文法,甚至还需要解析Javascript,因为现在的网页使用Ajax的越来越多了,而很多网页内容都是通过Ajax技术加载的,因为,只是简单地解析HTML文件在未来会远远不够。当然,在这里,只是展示一个非常简单的抓取,简单到只能做为一个例子,下面这个示例的伪代码:

取网页for each 链接 in 当前网页所有的链接{ if(如果本链接是我们想要的 || 这个链接从未访问过) { 处理对本链接 把本链接设置为已访问 }}

require “rubygems”require “mechanize”class Crawler

3.如何做一个简单爬虫

“入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习。

另外如果说知识体系里的每一个知识点是图里的点,依赖关系是边的话,那么这个图一定不是一个有向无环图。因为学习A的经验可以帮助你学习B。因此,你不需要学习怎么样“入门”,因为这样的“入门”点根本不存在!你需要学习的是怎么样做一个比较大的东西,在这个过程中,你会很快地学会需要学会的东西的。当然,你可以争论说需要先懂python,不然怎么学会python做爬虫呢?但是事实上,你完全可以在做这个爬虫的过程中学习python :D

看到前面很多答案都讲的“术”——用什么软件怎么爬,那我就讲讲“道”和“术”吧——爬虫怎么工作以及怎么在python实现。

先长话短说summarize一下:

你需要学习

基本的爬虫工作原理

基本的 文法,甚至还需要解析javascript,因为现在的网页使用ajax的越来越多了,而很多网页内容都是通过ajax技术加载的,因为,只是简单地解析html。

5.如何用Java写一个爬虫

最近刚好在学这个,对于一些第三方工具类或者库,一定要看官方tutorial啊。

学会用chrome network 分析请求,或者fiddler抓包分析。

普通的网页直接用下载下来,然后从里面提取出来有用的信息,这些有用的信息一般就是正文,图片,链接一类的信息。针对特定网站的爬虫就更好写了,用正则表达式,把网页里的链接信息找到,然后找到需要的信息,保存在本地,然后进入下一个链接重复上一次的过程。

下面的脚本演示如何从加菲猫的官网上把从1978年至今的所有漫画全部下载下来 import os,urllib,urllib2,re hosts = "pile('''.+?(.*?)''') pcomic = re.compile('''''') pnext = re.compile('''''') def getpage(url):print url req = urllib2.Request(url) req.add_header("User-Agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0") req.add_header("If-None-Match","") u = urllib2.urlopen(req).read() return u def getnextpos(content,patten):r = patten.findall(content) for x in r:print 'find next: ',x return x def savecomic(content,patten):r = patten.findall(content) print 'find commic:',r r2 = pname.findall(content) print 'find name:',r2 urlcomic = r[0] u = urllib.urlopen(urlcomic).read() name = r2[0].replace(' ','').split(',') year = name[-1] day = name[-2] filename = 'test.jpg' if not os.path.exists(year):os.makedirs(year)# is gif file ,the name the file as gif if ((u[0] is 'G') and (u[1] is 'I') and (u[2] is 'F')):filename = year+day+'.gif' else:filename = year+day+'.jpg' f = file(year+"/"+filename,"wb+") f.write(u) f.close() def main():url = hosts+initpos while(True):c = getpage(url) savecomic(c,pcomic) u = getnextpos(c,pnext) if u is None:break else:url = hosts+u if __name__ == '__main__':main()。

怎么写一个爬虫

转载请注明出处育才学习网 » 怎么写一个爬虫

知识

怎么用jlink烧写程序吗

阅读(265)

本文主要为您介绍怎么用jlink烧写程序吗,内容包括如何使用JLINK向stm32烧写程序,如何通过JLINK烧写STM32程序,如何使用JLINK向stm32烧写程序。原发布者:陶英健百为技术有限公司www.stm32bbs.com如何通过JLINK烧写STM32程序首先安装JLINK驱动

知识

小睡一下英语怎么写

阅读(269)

本文主要为您介绍小睡一下英语怎么写,内容包括小睡一下的英文翻译是什么;atshecommunitycenter的中文翻译是什,小睡用英语怎么说,小睡一下的英文翻译是什么;atshecommunitycenter的中文翻译是什么。睡午觉用英文:take a nap读音:英 [teɪk ə; e

知识

谢谢韩语怎么写怎么说

阅读(258)

本文主要为您介绍谢谢韩语怎么写怎么说,内容包括谢谢韩语怎么说音译,韩语的谢谢用中文怎么说,谢谢用韩语怎么写怎么说。”谢谢“的韩语:고마워요 读音:go ma wa yao词汇构成:单音节词,如:뫼(山)、 다섯(五)、 이빨(牙齿)2、双音节词,如:

知识

乐播投屏拼音怎么写

阅读(426)

本文主要为您介绍乐播投屏拼音怎么写,内容包括乐播投屏拼音,乐播投屏弄成拼音怎么打,乐视投屏拼音怎么打。网络连接首先要确保智能电视或者机顶盒同手机连接同一个WiFi。(最好是5G频段的wifi)手机连接wifi,电视、盒子可以连接wifi也

知识

筷子的英文单词怎么写

阅读(289)

本文主要为您介绍筷子的英文单词怎么写,内容包括筷子的英文怎么读,筷子英文单词怎么写,筷子用英语怎么说。chopstick的读音:英 [ˈtʃɒpstɪk]、美 [ˈtʃɑ:pstɪk] chopstickn.筷子Man with one

知识

que断的que怎么写

阅读(233)

本文主要为您介绍que断的que怎么写,内容包括que了一截树枝的que怎么写,que断的que怎么写,汉语中把筷子“que”断(折断的意思)的字怎样写。1)给法国人的一封信Myriam, Tu seras peut-être étonnée de recevoir ce courrier

知识

怎么写php数组代码

阅读(248)

本文主要为您介绍怎么写php数组代码,内容包括php数组赋值方法,如何用PHP语言创建数组,redis如何存一个PHP数组代码怎么写呢。PHP有自带的高性能函数 var_exportconn.php<?php$dbconfig = array (host=>127.0.0

知识

annie英文怎么写

阅读(307)

本文主要为您介绍annie英文怎么写,内容包括Annie英文名怎么写,Annie英文名怎么写,安妮英文怎么写。英文名:Annie [æni]中文音译:安妮名字性别:女孩英文名来源语种:英语名字寓意:亲切,正直,诚信,不善变名字印象:非常上进,喜欢

知识

c复制文件代码怎么写

阅读(261)

本文主要为您介绍c复制文件代码怎么写,内容包括如何用C#复制指定的几个文件这个代码怎么写呢,如何实现C语言中复制文件的程序,在windows下用c语言怎么写拷贝文件夹和该文件夹里的所有文件的代。用这个方法:Copy(String, String, Boolean) 将

知识

故事setting怎么写

阅读(653)

本文主要为您介绍故事setting怎么写,内容包括setting是什么意思,settings是什么意思,它的拼音怎么写,setting怎么读。setting 是文章的(情节)背景,故事发生时的背景环境。【setting 】做“背景环境”讲时,有两个义项:1>a set of s

知识

css虚线怎么写

阅读(276)

本文主要为您介绍css虚线怎么写,内容包括div+CSS中垂直虚线怎么写,怎么用css写虚线边框,CSS下划线是虚线怎么表示。1,你的css是否正确2,div里面是否有内容3,div是否设置宽高在div没有设置宽高情况下和里面内容时,div内背景和边框是看不清的

知识

diamantepoem怎么写

阅读(232)

本文主要为您介绍diamantepoem怎么写,内容包括谁能教我怎么写HAIKU诗(英文)/Diamantepoem谁能教我怎么写,谁能教我怎么写HAIKU诗(英文)/Diamantepoem,poem怎样写。源于日本的俳句俳句日本古典短诗,由17字音组成.原称俳谐(也写为诽谐).俳谐一语来源

知识

dreamweaver怎么写jsp

阅读(285)

本文主要为您介绍dreamweaver怎么写jsp,内容包括如何用Dreamweaver生成jsp代码,如何用Dreamweaver和JAVA做JSP,要具体点的,dreamweaver那里直接可以写jsp代码,我是刚刚学jsp,想知道可以代。Dreamweaver制作JSP首先第一步: 站点--新建站点--

知识

marc元数据标准查阅报告怎么写

阅读(295)

本文主要为您介绍marc元数据标准查阅报告怎么写,内容包括元数据的标准,元数据标准的开发应用,元数据标准的开发应用。元数据的基本意义Metadata(元数据)是“关于数据的数据”;元数据为各种形态的数字化信息单元和资源集合提供规范、普遍的描述

知识

爬虫怎么用

阅读(214)

本文主要为您介绍爬虫怎么用,内容包括python网络爬虫可以干啥,爬虫都可以干什么,网络爬虫软件怎么使用。网络爬虫,即Web Spider,是一个很形象的2113名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘

知识

java怎么写网络爬虫

阅读(248)

本文主要为您介绍java怎么写网络爬虫,内容包括求用JAVA编写一个网络爬虫的程序,java要写个网络爬虫求思路谢谢,java网络爬虫怎么实现。import java.awt.*;import java.awt.event.*;import java.io.*;import ja

知识

内网怎么写爬虫

阅读(304)

本文主要为您介绍内网怎么写爬虫,内容包括如何自己写一个网络爬虫,如何自己写一个网络爬虫,网站文章怎么写才能让爬虫经常来。网络爬虫以叫网络蜘蛛,网络机器人,这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你

知识

爬虫脚本怎么写

阅读(214)

本文主要为您介绍爬虫脚本怎么写,内容包括如何写爬虫脚本进行网页文本挖掘采集需要的,python写了个爬虫脚本怎么通过web方式控制开始暂停,如何写爬虫脚本进行网页文本挖掘采集需要的。以Python2.7操作为例:首先需要打开电脑桌面,按开始的快捷

知识

网络爬虫怎么写

阅读(179)

本文主要为您介绍网络爬虫怎么写,内容包括如何自己写一个网络爬虫,自己动手写网络爬虫怎么样,用python写网络爬虫书怎么样。网络爬虫以叫网络蜘蛛,网络机器人,这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的

知识

php爬虫怎么写

阅读(184)

本文主要为您介绍php爬虫怎么写,内容包括如何用php编写网络爬虫,怎么写php爬虫自动抓取,PHP可以写网页爬虫吗。php不太适合用来写网络爬虫,因为几乎没有现成的框架,或者成熟的下载机制,也不太适合做并发处理.下载页面的话除了一个curl,就是fil

知识

怎么写网络爬虫

阅读(190)

本文主要为您介绍怎么写网络爬虫,内容包括如何自己写一个网络爬虫,自己动手写网络爬虫怎么样,如何自己写一个网络爬虫。网络爬虫以叫网络蜘蛛,网络机器人,这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点

知识

怎么写爬虫python

阅读(168)

本文主要为您介绍怎么写爬虫python,内容包括如何用python写爬虫知乎,如何用python写爬虫知乎,如何用Python编写一个简单的爬虫。学习基本的爬虫工作原理基本的http抓取工具,scrapyBloom Filter: Bloom Filters by Example如

[/e:loop]