python之爬虫框架

以前对爬虫一知半解,知道看了一个视频课程后,才豁然开朗。本文从爬虫框架的角度来介绍。


爬虫的框架:

一个爬虫程序由URL管理器、网页下载器、网页分析器组成,下面分别介绍。


1、URL管理器:

URL管理器可以理解为存储URL的地方,包括初始的URL、已爬取的URL和待爬取的URL。一般有3种实现方式:

1)  内存

将URL 存储到set中,set可以清除重复的元素

2)  存储到mysql

建立urls表,urls(url, is_crawls)

3)  缓存数据库redis

  待爬取的url:

  已爬取的url:

由于redis的高性能,对于大型公司一般会用redis来存储,对于个人来说,用内存。


2、网页下载器

将互联网上的网页下载到本地,下载到本地后才能进行后续分析和处理。

Python有以下几种网页下载方式:

1)最简洁的方法:用python自带的库urllib2,示例如下:

# -*- coding:utf-8 -*-
import urllib2

#直接请求
response = urllib2.urlopen('http://www.baidu.com')

#获取状态码,如果是200表示获取成功
print response.getcode()

#读取内容
cont = response.read()

print cont
2)

添加data,向服务器提交需要用户提交的数据,如url、data、header,交由urllib2的Request来处理。

# -*- coding:utf-8 -*-
import urllib2

#创建request对象
request = urllib2.Request('http://www.baidu.com')

#添加数据
#request.add_data('a','1')

#添加http的header,伪装为一个Mozilla访问
request.add_header('User-Agent', 'Mozilla/5.0')

#发送请求获取结果
response = urllib2.urlopen(request)

print response.getcode()

cont = response.readline()

print cont
3)添加特殊场景的处理器

有些网页需要cookies,或者代理proxy,或者HTTPS加密访问,或者url相互的处理调用关系。每种都有对应的库,调用这些库,填充参数后,最后用urlopen打开。


4)requests:第三方库,功能更强大


3、网页解析器

python有4种网页解析器,分别是正则表达式、html模块的parser、beautiful soup、lxml。在实际的应用中,正则表达式比较简单实用,Beautiful Soup可以和其他方法结合完成一个强大的功能。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值