Python网络通信-python爬虫基础

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"
}

利用代理请求:

# 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、简单爬虫实战

后续就可以进行简单的爬虫了,这个我会持续更新的

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值