python爬虫 学习
学习爬虫因为爬取的一般都是网站,在后期可能会出现需要登陆网站等等的信息, 因此在学爬虫前需要大致的了解一下html 网站的架构,以及前端向后端传递参数时候的大致要求.
http 的请求方式
- get 请求
- post 请求
在学习的前两天如果有时间的话大致的去了解一下这两个请求方式, 在传递账号密码参数的时候一般都选择使用post 请求,这样的方式更加安全,
爬虫的一般步骤
- 获取你需要爬区网页的url
- 使用python 代码发送网络请求
- 获取你通过python 代码发送的网络请求的信息
- 对你获取到的信息进行进一步的解析
- 保存你解析后的内容到文件中,或者数据库中
python 提供的模块
- urllib 库,这是python 原生提供的库文件. 比较底层,建议去学习urllib库后看request 库会加深理解
- requests 库, 这是第三方提供的模块,相比较于urllib库request 库封装的更好 使用起来也比较简便
剩下的就看代码演示来加深理解
urllib 库的讲解
import urllib.request
# 导入urllib 库文件
# 按照之前的步骤,第一步是要获取爬取文件的url, 在这里以百度首页为例子
# !! 注意http 和https 还是有些不同的 至于哪些不同 我也不知道 想去了解的去百度一下吧,在这里以http 作为例子进行演示
# 1. 获取爬取网站的url 地址
url = "https://www.baidu.com"
# 2. 向网站发送请求
'''
在这里,发送请求有两种情况,一种是创建一个Resquest 我叫他为请求对象,把它当成你本人,还有一种是忽略了创建请求对象这个过程,直接去访问网站
'''
# 下面为直接访问网站的方式
# 通过urllib.request.openurl() 方法向网站发送请求后会直接返回给response 接收的信息
response = urllib.request.openurl()
# 在这里可以把response 当作一个接受信息的人,要知道他脑子里存储的信息就需要read()操作
data = response.read() # 如果把这里的data 打印下来之后会发现获取到的是二进制的文件。因此 我们要对其进行进一步的解码
# 对其进行进一步的解码操作
data = response.read().decode('uint-8') # 这里获取到的data 信息就是解码后的html 文件信息
# 将其保存到文档的方法用下面的方法,with
with open('baidu.html', 'w', 'encoding='utf-8') as f
f.write(data)
小结: 要注意以上的方法中是一种很直白的爬取信息的方法,网上有很多方法来反爬,用python 写了这么短的代码然后就很简单的获取到了想要的页面的信息未免也太简单了,服务器很容易知道我们就是爬虫,他们会对你采取制裁,可能会封禁你的IP让你无法访问因此在下边要对其进行稍微的加工一下