极品召唤兽 发表于 2021-1-25 23:25:45

爬虫学习笔记1-----初识爬虫 New!

本帖最后由 极品召唤兽 于 2021-1-25 23:55 编辑




什么是爬虫


网络爬虫,简称爬虫,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。

搜索引擎本质上就是爬虫。在上面的过程中,搜索引擎将互联网上的网页都爬取并存储起来。当我们搜索的时候,搜索引擎就从自己存储的网页里找到我们需要的结果并展示出来。

https://s3.ax1x.com/2020/12/27/rIIbHH.jpg
(浏览器的运作过程)

首先,我们在浏览器输入网址(URL)。然后浏览器去访问该网址对应的服务器,这个过程叫 请求(request)。接着服务器将网站内容发送给浏览器,这个过程叫 响应(response)。      
                                                                                                                                                
爬虫就是模拟浏览器的行为,从而获取网站的数据。





爬虫工作原理


第一步:获取数据,爬虫会根据我们提供的网址,向服务器发起请求获取数据;
第二步:处理数据,对获取的数据进行处理,得到我们需要的部分;
第三步:存储数据,将处理后的数据保存起来,便于后续的使用和分析等。

接下来,我们来学习爬虫中最常用的发起请求的第三方库——requests。下面是 requests 的中文文档页面(https://requests.kennethreitz.org/zh_CN/latest/)。

如果我们想在自己的电脑上安装,可以通过在命令行中输入 pip install requests 安装。




requests.get() 方法


第一步:获取数据
import requests# 导入 requests 模块

res = requests.get('https://wpblog.x0y1.com')# 发起请求
print(res)
# 输出:<Response >

Tips:
注意 命令代码是requests.get 不要忘记 s 哦

我们使用 requests.get('网站地址') 方法向对应的网站发起了请求,然后我们将返回的结果存到了变量 res 中供后续使用。它的类型是 Response 对象,后面的 200 是状态码



Response 对象的常用属性


https://s3.ax1x.com/2021/01/16/sD4Az9.jpg




res.status_code命令


不同的状态码有不同的含义,常见的状态码如下:

https://img.imgdb.cn/item/6002bd293ffa7d37b3eba432.jpg

下面是具体使用例子

import requests

res = requests.get('https://wpblog.x0y1.com')

# 条件判断
if res.status_code == 200:
print('请求成功')
else:
print('请求失败')


res.text


这个代码返回的是服务器响应内容的字符串形式,也就是文本内容。(如下)

使用该指令可以看见源代码,我们通过浏览器访问该网站获取得的就是它,

获取到源代码后浏览器会将其解析成我们最终看到的页面 。

https://img.imgdb.cn/item/6002c4c63ffa7d37b3f0472b.png




利用代码下载


import requests

# 获取孔乙己数据
res = requests.get('https://apiv3.shanbay.com/codetime/articles/mnvdu')
# 以写入的方式打开一个名为孔乙己的 txt 文档
with open('孔乙己.txt', 'w') as file:
# 将数据的字符串形式写入文件中
file.write(res.text)


file指令



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('扇贝编程')


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

~~点我跳转接下文~~

https://s1.ax1x.com/2020/08/03/adUfk6.gif

Daniel_Zhang 发表于 2021-1-25 23:42:42

学废了学废了{:10_254:}

极品召唤兽 发表于 2021-1-25 23:43:54

Daniel_Zhang 发表于 2021-1-25 23:42
学废了学废了

我这篇一直写写停停...都快拖一个月了hhh

今日风平浪静 发表于 2021-1-26 09:34:51

{:10_277:}

1406598279 发表于 2021-1-26 09:45:03

{:10_254:}{:10_254:}{:10_254:}哇哦!!!

页川 发表于 2021-1-26 10:15:46

感谢楼主分享,已收藏,慢慢学

hornwong 发表于 2021-1-26 10:44:32

{:5_95:}

SomeThing9 发表于 2021-1-30 14:40:51

{:10_256:}{:10_256:}{:10_256:}

玖玥 发表于 2021-1-31 09:45:57

1111

小伤口 发表于 2021-1-31 22:47:32

顶{:5_102:}

攸鱼 发表于 2021-2-1 10:36:50

原来如此

攸鱼 发表于 2021-2-1 10:39:27

真的

墨砚学长 发表于 2021-2-1 10:42:51

学习了

我是小白啊 发表于 2021-2-1 11:54:39

慢慢学

SomeThing9 发表于 2021-2-2 08:36:55

好高级的样子   就是被爬虫吸引才打算学python的{:10_254:}

pienashuicha 发表于 2021-5-23 23:46:43

thanks sharing

a44367434 发表于 2021-9-16 22:10:46

666

lixiaoqiang2020 发表于 2021-11-24 20:39:41

黑色长条是有文字的,大家用鼠标把他们高亮显示就能看到啦
机智如我哟

百遍真人 发表于 2023-4-17 07:20:20

今日学习+1
页: [1]
查看完整版本: 爬虫学习笔记1-----初识爬虫 New!