首页 > 其他分享 >爬虫入门之轻量级爬虫

爬虫入门之轻量级爬虫

时间:2023-03-20 12:06:17浏览次数:52  
标签:网页 入门 URL urllib2 爬虫 urlopen opener 轻量级

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

#创建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/")

标签:网页,入门,URL,urllib2,爬虫,urlopen,opener,轻量级
From: https://blog.51cto.com/u_13488918/6132502

相关文章

  • Scrapy爬虫框架安装与介绍
    Scrapy爬虫框架也是爬虫项目常用的框架之一,Scrapy通过Python编写,台式一个快速、高层次的屏幕抓取和网页抓取框架,Scrapy框架的用途广泛,可以用于数据挖掘、监测和自动化测试......
  • 密码学SAT入门文献1——Algebraic and Logic Solving Methods for Cryptanalysis
    密码学SAT入门文献2——CDCL(Crypto)SATSolversforCryptanalysis  Abstract Algebraicsolvingofpolynomialsystemsandsatisfiabilityofproposi......
  • 网络爬虫的原理是什么?
    随着互联网的兴起,网络上的公开数据大多数都是以http(或加密的http即https)协议传输的。因此,我们将通过对爬虫技术的介绍并基于http(https)协议编写的爬虫教程供大家参考。在Py......
  • Vue2入门之超详细教程四-数据绑定
    1、简介数据绑定分为单向数据绑定和双向数据绑定,上一章节中出现的v-bind就属于单向数据绑定。单向绑定(v-bind):数据只能从data流向页面双向绑定(v-model):数据不仅......
  • 拉格朗日插值入门
    我们都知道,通过\(n+1\)个点可以求出一个\(n\)次的多项式,使这个多项式通过这\(n+1\)个点。拉格朗日插值,就是一种求这个多项式的方法。这种方法使如此的睿智,以至于我可......
  • Android 开发入门(1)| 准备 | 开发环境 | 开发基础
    0x01准备(1)概述安卓(Android)基于Linux内核开发的操作系统,由Google等领导开发。(2)版本Android版本号API发布时间Android14-2023Android13332022.......
  • [LeetCode] 数据结构入门
    数据结构入门217存在重复元素给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。解法1:两层循环第一层循......
  • CSS入门
    1.CSS简介CSS的主要使用场景就是美化网页,布局页面。1.1HTML的局限性说起HTML,其实就是个非常单纯的家伙,他只关注内容语义。比如<h1>表明这是一个大标题,<p>表明这是一个......
  • 深度学习入门 Chapter2
    What'sperceptronalgorithminventedbyFrankRosenblatt?Theperceptronalgorithmisasupervisedlearningalgorithmforbinaryclassificationofinputdatai......
  • java——Zookeeper学习——入门学习
    学习之前看了2个B站教程:   1、千峰:https://www.bilibili.com/video/BV1Ph411n7Ep/?vd_source=79bbd5b76bfd74c2ef1501653cee29d6   2、黑马:https://www.bili......