前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫入门(一):轻量级爬虫

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

作者头像
一点儿也不潇洒
发布2018-08-07 10:11:40
4430
发布2018-08-07 10:11:40
举报
文章被收录于专栏:肖洒的博客

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

pachong
pachong

1.爬虫简介

  • 爬虫:一段自动抓取互联网信息的程序
  • 价值:互联网数据,为我所用! 新闻聚合阅读器、最爆笑故事APP、图书价格对比网、Python技术文章大全

2.简单爬虫架构

简单爬虫架构-运行流程

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

3.URL管理器

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

实现方式

1.内存

代码语言:javascript
复制
Python内存  
待爬取URL集合:set()  
已爬取URL集合:set()

2.关系数据库

代码语言:javascript
复制
MySQL  
urls(url, is_crawled)

3.缓存数据库

代码语言:javascript
复制
redis
待爬取URL集合:set
已爬取URL集合:set

其中,内存适合个人,缓存数据库适合大型公司。 ### 4.网页下载器(urllib2)[核心组件]() - 网页下载器:将互联网上URL对应的网页下载到本地的工具。 - Python有那几种网页下载器? -

代码语言:javascript
复制
1.Python官方基础模块:urllib2  
2.第三方包更强大:requests

网页下载器-urllib2

  • urllib2下载网页方法1:最简洁方法 url->urllib2.urlopen(url)

对应代码:

代码语言:javascript
复制
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)

对应代码:

代码语言:javascript
复制
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) *对应代码:*

代码语言:javascript
复制
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/")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.爬虫简介
  • 2.简单爬虫架构
  • 3.URL管理器
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档