目录
前言
一、安装并引用请求模块requests
1.安装请求模块
2.引用requests请求模块
3.引用requests请求模块并使用别名
二、发起请求
1.对网站发起get请求(最常用的请求):
(1)第一种方法(字符串)
(2)第二种方法(变量)
(3)第三种方法(关键字传参)
2.对网站发起带参数的get请求:
3.对网站发起post请求:
4.对网站发JSON数据的post请求:
4.注意事项
总结
爬虫的本质:通过程序模拟人的行为模拟浏览器发起网络请求,接收请求响应,按照一定的规则,自动爬取互联网信息的程序(也可以叫做脚本哈!)通过编写程序,让他模拟浏览器上网,然后在互联网中爬取数据的过程。
爬虫的作用:通过爬虫我们可以通过爬虫快速地获取大量的数据,从而加快信息的获取和处理的速度,方便人们进行各种研究和应用。(例如:获取无水印视频、照片等等小技巧~)
注意:本文章中均以Pycharm编译器为例。
requests模块不是python标准库中的一部分,所以在使用前需要先安装它。
我们可以用 pip(Python 包管理工具)来进行安装,打开命令行界面(如下图所示),输入 pip install requests 执行以下命令:
代码如下:
pip install requests
在网络爬虫开发中,请求模块是获取网页内容的基础工具。通过发送 HTTP 请求到目标网页的 URL,能获取到网页的 HTML、XML 等格式的源代码。
代码如下:
import requests
有时候,为了方便或者避免命名冲突,可以给导入的模块指定一个别名。
代码如下:
import requests as rqs
# 发送一个简单的GET请求,使用别名调用方法
response = rqs.get('https://www.example.com')
print(response.text)
在 Python 中,使用requests库可以很方便地对网站发起请求。以下分别介绍发起常见的 GET 和 POST 请求的示例,以及请求过程中可能会涉及的一些参数设置。
GET请求通常用于从服务器获取资源,比如获取网页的HTML内容,获取API返回的数据等。
import requests
#目标网站
url = 'https://www.baidu.com/' #想要爬取的目标网站的url(网址),这里以百度为例
#发起get请求
res = requests.get('https://www.baidu.com/') # res = 响应对象
# .get是即发起get请求
# res是存储了请求获取到的参数
res = requests.get(url) # url变量存储了百度网址
res = requests.get(url = u) # url是关键字 u是参数代表储存网址的变量
注意:参数名 = 参数值 参数名不能随便写 必须是get函数的形参名。
有时候,我们需要在 GET 请求中传递参数。可以通过params
参数来实现。
import requests
url = 'https://www.baidu.com/api'
# 定义请求参数
params = {
'key_1': 'value1',
'key_2': 'value2'
}
res = requests.get(url, params=params)
在这个例子中,我们通过params
参数传递了两个键值对作为请求参数,requests
库会自动将这些参数添加到 URL 中。
POST 请求通常用于向服务器提交数据,比如提交表单数据、上传文件等。
import requests
url = 'https://www.baidu.com/api'
# 定义要提交的数据
data = {
'username': 'user123',
'password': 'pass123'
}
response = requests.post(url, data=data)
在这里我们要引入json模块,才能够对网站提交json数据
import requests
import json
url = 'https://www.baidu.com/api'
# 定义要提交的 JSON 数据
data = {
'name': 'SZX',
'age': 100
}
# 发起 POST 请求,使用 json 参数传递 JSON 数据
response = requests.post(url, json=data)
在这个例子中,我们使用json
参数传递了一个 Python 字典,requests
库会自动将其转换为 JSON 格式并发送到服务器。
设置请求头:有些网站可能会对请求头进行检查,你可以通过headers
参数设置请求头,模拟浏览器行为。
import requests
url = 'https://www.baidu.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
超时设置:可以通过timeout
参数设置请求的超时时间,避免程序长时间等待无响应的请求。
response = requests.get(url, timeout=5) # 超时时间设置为 5 秒
本文章讲解了爬虫新手需要掌握的基础知识——对网站发起响应。
作者大大也是自学了一段时间的python爬虫知识,在此做出学习笔记分享给各位想要学习爬虫的小伙伴们,同时也虚心接受各位大佬们的指点,我会做出改正,谢谢各位。