python爬虫入门
前言
什么是爬虫
我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如 360 浏览器的爬虫称作 360Spider,搜狗的爬虫叫做 Sogouspider。首先简单的理解一下爬虫。即请求网站并且提取自己所需的数据的一个过程。至于怎么爬如何爬,将是后面进行学习的内容,暂且不必深究。通过我们的程序,可以代替我们向服务器发送请求,然后进行批量、大量的数据的下载。
爬虫分类
爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。
通用网络爬虫:是搜索引擎的重要组成部分,上面已经进行了介绍,这里就不再赘述。通用网络爬虫需要遵守 robots 协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。
robots 协议:是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。
聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它与通用爬虫的区别在于,聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。聚焦网络爬虫极大地节省了硬件和网络资源,由于保存的页面数量少所以更新速度很快,这也很好地满足一些特定人群对特定领域信息的需求。
增量式网络爬虫:是指对已下载网页采取增量式更新,它是一种只爬取新产生的或者已经发生变化网页的爬虫程序,能够在一定程度上保证所爬取的页面是最新的页面。
如何实现爬虫
今天带给大家的是一款利用python进行网络爬虫的requests模块,我使用的是Pycharm 2022.2.3, 喜欢动手的小伙伴可以尝试以下,以下代码均可成功实现。
网络请求模块 :
requests 模块
之所以使用
requests 模块
是因为其使用较之于-urllib 模块
更简洁高效。
requests 模块 python中原生的一款
基于网络请求
得到网页数据的模块,功能强大,简单便捷,效率极高。
requests 模块作用:
模拟浏览器发送请求 (爬虫)
如何使用requests 模块:
(requests模块的编码流程)
- 指定url
- 发起请求 get 或 post
- 获取响应数据
- 持久化存储
让我们开始今天的旅程吧
环境安装:
pip install requests
编码实战:
-
导入requests 模块包
import requests
-
指定需求:爬取搜狗首页的页面数据
# 指定url url = 'https://www.sogou.com/'
-
发起请求get
# get方法会返回一个响应对象 response = requests.get(url=url) # 如果响应成功则使用response对象来接收
-
获取响应数据
# 获取响应数据 page_text = response.text
.text返回的是字符串形式的响应数据
-
持久化存储
with open('./sogou.html', 'w', encoding='utf-8') as fp: fp.write(page_text)
完整代码参考:
import requests
# step 1.指定url
url = 'https://www.sogou.com/'
# step 2.发起请求
# get方法会返回一个响应对象
response = requests.get(url=url)
# step 3.获取响应数据
page_text = response.text
print(page_text)
# step 4.持久化存储
with open('./sogou.html', 'w', encoding='utf-8') as fp:
fp.write(page_text)
print("爬取数据结束!!!!")