马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 极品召唤兽 于 2021-1-25 23:55 编辑
网络爬虫,简称爬虫,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。
搜索引擎本质上就是爬虫。在上面的过程中,搜索引擎将互联网上的网页都爬取并存储起来。当我们搜索的时候,搜索引擎就从自己存储的网页里找到我们需要的结果并展示出来。
(浏览器的运作过程)
首先,我们在浏览器输入网址(URL)。然后浏览器去访问该网址对应的服务器,这个过程叫 请求(request)。接着服务器将网站内容发送给浏览器,这个过程叫 响应(response)。
爬虫就是模拟浏览器的行为,从而获取网站的数据。
第一步:获取数据,爬虫会根据我们提供的网址,向服务器发起请求获取数据;
第二步:处理数据,对获取的数据进行处理,得到我们需要的部分;
第三步:存储数据,将处理后的数据保存起来,便于后续的使用和分析等。
接下来,我们来学习爬虫中最常用的发起请求的第三方库——requests。下面是 requests 的中文文档页面(https://requests.kennethreitz.org/zh_CN/latest/)。
如果我们想在自己的电脑上安装,可以通过在命令行中输入 pip install requests 安装。
第一步:获取数据import requests # 导入 requests 模块
res = requests.get('https://wpblog.x0y1.com') # 发起请求
print(res)
# 输出:<Response [200]>
Tips:
注意 命令代码是requests.get 不要忘记 s 哦
我们使用 requests.get('网站地址') 方法向对应的网站发起了请求,然后我们将返回的结果存到了变量 res 中供后续使用。它的类型是 Response 对象,后面的 200 是状态码
不同的状态码有不同的含义,常见的状态码如下:
下面是具体使用例子
import requests
res = requests.get('https://wpblog.x0y1.com')
# 条件判断
if res.status_code == 200:
print('请求成功')
else:
print('请求失败')
这个代码返回的是服务器响应内容的字符串形式,也就是文本内容。(如下)
使用该指令可以看见源代码,我们通过浏览器访问该网站获取得的就是它,
获取到源代码后浏览器会将其解析成我们最终看到的页面 。
import requests
# 获取孔乙己数据
res = requests.get('https://apiv3.shanbay.com/codetime/articles/mnvdu')
# 以写入的方式打开一个名为孔乙己的 txt 文档
with open('孔乙己.txt', 'w') as file:
# 将数据的字符串形式写入文件中
file.write(res.text)
open() 函数是 Python 中的内置函数,用于打开文件,返回值是一个 file 对象。
open() 函数接收的第一个参数为文件名,第二个参数为文件打开模式。打开模式默认为 r,是 read 的缩写,表示只读模式。即只能读取内容,不能修改内容。
常用的打开模式有 w(write,只写模式)、b(binary,二进制模式)和 a(append,追加模式,表示在文件末尾写入内容,不会从头开始覆盖原文件)。
Tips:
在 w 和 a 模式下,如果你打开的文件不存在,那么 open() 函数会自动帮你创建一个。
这些打开模式还能两两组合,
比如:
rb 表示以二进制格式打开文件用于读取,
wb 表示以二进制格式打开文件用于写入,
ab 表示以二进制格式打开文件用于追加写入。
# 读取文件
file = open('文本.txt') # 打开模式默认为 r,可省略
print(file.read()) # 调用 read() 方法读取文件内容
file.close() # 关闭文件
# 写入文件
file = open('文本.txt', 'w') # 写入模式
file.write('扇贝编程') # 调用 write() 方法写入内容
file.close() # 关闭文件
为了避免忘记调用 close() 方法关闭文件,导致资源占用、文件内容丢失等问题,
推荐使用 with ... as ... 语法,它在最后会自动帮你关闭文件。
# 普通写法
file = open('文本.txt', 'w') # 写入模式
file.write('扇贝编程') # 调用 write() 方法写入内容
file.close() # 关闭文件
# 使用 with ... as ... 写法
with open('文本.txt', 'w') as file:
file.write('扇贝编程')
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
~~点我跳转接下文~~
|