爬虫入门(一):轻量级爬虫

2017-06-06  本文已影响0人  朴有天虹

date: 2016-09-24 17:38:42

今天下雨,下午没课,适合学习。(●'◡'●)

pachong

1.爬虫简介

2.简单爬虫架构

简单爬虫架构-运行流程

调度器->URL管理器->下载器->解析器->应用

3.URL管理器

URL管理器:管理待抓取URL集合和已抓取URL集合
防止重复抓取、防止循环抓取

实现方式

1.内存
<pre>
Python内存
待爬取URL集合:set()
已爬取URL集合:set()
</pre>

2.关系数据库
<pre>
MySQL
urls(url, is_crawled)
</pre>

3.缓存数据库
<pre>
redis
待爬取URL集合:set
已爬取URL集合:set
</pre>
其中,内存适合个人,缓存数据库适合大型公司。

4.网页下载器(urllib2)核心组件

<pre>
1.Python官方基础模块:urllib2
2.第三方包更强大:requests
</pre>

网页下载器-urllib2

对应代码:
<pre>
import urllib2

直接请求

response = urllib2.urlopen('http://www.baidu.com')

获取状态码,如果是200表示获取成功

print response.getcode()

读取内容

cont = response.read()
</pre>

url&data&header->urllib2.Request->urllib2.urlopen(request)

对应代码:
<pre>
import urllib2

创建Request对象

request = urllib2.Request(url)

添加数据,向服务器提交用户数据,比如提交a这个数据的值为1

request.add_data('a','1')

添加http的header,http头信息。这里将爬虫伪装成一个Mozilla的浏览器。

request.add_header('User-Agent','Mozilla/5.0')

发送请求获取结果

response = urllib2.urlopen(request)
</pre>

将这些Handler传送给opener = urllib2.build_opener(handler),再传送给urllib2.install_opener(opener),最后->urllib2.urlopen(url) urllib2.urlopen(request)

对应代码:
<pre>
import urllib2, cookielib

创建cookie容器,存储cookie数据

cj = cookielib.CookieJar()

创建1个opener

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

给urllib2安装opener

urllib2.install_opener(opener)

使用带有cookie的urllib2访问网页

response = urllib2.urlopen("http://www.baidu.com/")
</pre>

上一篇 下一篇

猜你喜欢

热点阅读