Python网络通信
1、requests模块的使用
1.1、安装requests模块
pip install requests
打开pycharm
安装成功会提示successfully
1.2、发送GET请求
-
简单请求(以京东举例)
# coding=utf-8 import requests url = "http://www.jd.com" # 直接请求 res = requests.get(url) # 获取响应体的内容 data = res.text # 把结果打印出来(结合文件读取就可以爬取网页内容) print(data)
运行结果
-
添加请求头(以百度举例)
为什么要添加请求头呢,因为有些网页在你请求的时候会检查你是否有请求头,如果没有请求头,就不会返回正常的内容,下面我来验证
创建两个python文件test01,test02
# test01 内容如下 # coding=utf-8 import requests url = "http://www.baidu.com" # 直接请求 res = requests.get(url) # 获取响应体的内容 data = res.text print(data)
test01运行结果
test02
# test02 内容如下 # coding=utf-8 import requests url = "http://www.baidu.com" header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } # 直接请求 res = requests.get(url, headers=header) # 获取响应体的内容 data = res.text print(data)
test02运行结果
1.2.1请求头的获取
-
添加请求参数
# coding=utf-8 import requests url = "http://www.baidu.com" header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } # 直接请求 res = requests.get(url=url, params=params, headers=header) # 直接在这里添加上面的定义的参数即可 # 获取响应体的内容 data = res.text print(data)
-
响应字符编码设置
# coding=utf-8 import requests url = "http://www.baidu.com" # 请求头 header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } # 直接请求 res = requests.get(url=url, params=params, headers=header) # 获取响应体的内容 data = res.text print(data) # 如果乱码,可以设置响应数据的编码 print(res.content.decode("utf-8"))
-
查看请求URL,响应编码,状态码
# coding=utf-8 import requests url = "http://www.gxaedu.com" # 请求头 header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } # 请求参数 params = { 'id': 10 } # 直接请求 res = requests.get(url=url, params=params, headers=header) # 查看完整的请求URL print(res.url) # 查看响应头编码 print(res.encoding) # 查看响应状态码 print(res.status_code)
-
获取响应的cookie
有些网页要登录之后才能看到内容,所以要先注册一个账户,登录之后拿到自己的cookie去进行下一步操作
# coding=utf-8 import requests url = "http://www.baidu.com" # 请求头 header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } # 请求参数(网页有参数采用参数,视具体情况来的) params = { 'id': 10 } # 直接请求 res = requests.get(url=url, params=params, headers=header) # 查看完整的请求URL print(res.url) # 查看响应头编码 print(res.encoding) # 查看响应状态码 print(res.status_code) # 获取响应cookie cookie_data = list(res.cookies) # 遍历获取cookie值 for cookie in cookie_data: print(cookie.value)
1.3、发送POST请求
和get一致,只是方法名字变成了post
# coding=utf-8
import requests
url = "http://www.baidu.com"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 请求参数
data = {
'wd': 'python'
}
# 直接请求
res = requests.post(url=url, headers=header, data=data)
# 查看完整的请求URL
print(res.url)
# 查看响应头编码
print(res.encoding)
# 查看响应状态码
print(res.status_code)
# 获取响应数据
print(res.content.decode("utf-8"))
1.4、挂代理(这个要自行学习科学上网,才能操作)
请求时,先将请求发给代理服务器,代理服务器请求目标服务器,然后目标服务器将数据传给代理服务器,代理服务器再将数据给爬虫。
直接请求:
# coding=utf-8
import requests
# 测试回显IP的地址
url = "http://httpbin.org/ip" # 这个网址可以返回自己的ip
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 直接请求
res = requests.get(url=url, headers=header)
print(res.text)
结果:显示的是自己的IP
{
"origin": "xxx.xxx.xx.x"
}
利用代理请求:文章来源:https://www.toymoban.com/news/detail-820719.html
# coding=utf-8
import requests
# 测试回显IP的地址
url = "http://httpbin.org/ip"
# 请求头
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 使用代理
proxy = {
# 准备的代理地址
'http': 'http://xxx.xxx.xxx.xxx:端口号',
'https': 'http://xxx.xxx.xxx.xxx:端口号'
}
# 直接请求
res = requests.get(url=url, proxies=proxy, headers=header)
print(res.text)
1.5、简单爬虫实战
后续就可以进行简单的爬虫了,这个我会持续更新的文章来源地址https://www.toymoban.com/news/detail-820719.html
到了这里,关于Python网络通信-python爬虫基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!