1、爬虫简介
爬虫:一段自动抓取互联网信息的程序
价值:互联网数据,为我所用!
新闻聚合阅读器、最爆笑故事APP、图书价格对比网、Python技术文章大全
2、简单爬虫架构
简单爬虫架构-运行流程
调度器->URL管理器->下载器->解析器->应用
3、URL管理器
URL管理器:管理待抓取URL集合和已抓取URL集合
防止重复抓取、防止循环抓取
实现方式
1、内存
Python内存
待爬取URL集合:set()
已爬取URL集合:set()
2、关系数据库
MySQL
urls(url, is_crawled)
3、缓存数据库
redis
待爬取URL集合:set
已爬取URL集合:set
其中,内存适合个人,缓存数据库适合大型公司。 ### 4、网页下载器(urllib2)[核心组件]() - 网页下载器:将互联网上URL对应的网页下载到本地的工具。 - Python有那几种网页下载器? -
1、Python官方基础模块:urllib2
2、第三方包更强大:requests
网页下载器-urllib2
urllib2下载网页方法1:最简洁方法
url->urllib2.urlopen(url)
对应代码:
import urllib2
#直接请求
response = urllib2.urlopen('http://www.baidu.com')
#获取状态码,如果是200表示获取成功
print response、getcode()
#读取内容
cont = response、read()
urllib2下载网页方法2:添加data、http header
url&data&header->urllib2.Request->urllib2.urlopen(request)
对应代码:
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)
- urllib2下载网页方法3:添加特殊情景的处理器
例如:
- 某些需要登录信息的网页,可以用 HTTPCookieProcessor
- 某些需要代理才能访问的网页,可以用ProxyHandler
- 某些使用了加密协议,可以用HTTPSHandler
- 网页URL相互自动跳转关系,使用HTTPRedirectHandler
将这些Handler传送给opener = urllib2.build_opener(handler),再传送给urllib2.install_opener(opener),最后->urllib2.urlopen(url) urllib2.urlopen(request)
对应代码:
import urllib2, cookielib标签:网页,入门,URL,urllib2,爬虫,urlopen,opener,轻量级 From: https://blog.51cto.com/u_13488918/6132502
#创建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/")