Python网络通信-python爬虫基础

这篇具有很好参考价值的文章主要介绍了Python网络通信-python爬虫基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python网络通信

1、requests模块的使用

1.1、安装requests模块

pip install requests

打开pycharm

Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

安装成功会提示successfully

Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

1.2、发送GET请求

  • 简单请求(以京东举例)
    # coding=utf-8
    import requests
    
    url = "http://www.jd.com"
    # 直接请求
    res = requests.get(url)
    # 获取响应体的内容
    data = res.text
    # 把结果打印出来(结合文件读取就可以爬取网页内容)
    print(data)
    

    运行结果

    Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

  • 添加请求头(以百度举例)

    为什么要添加请求头呢,因为有些网页在你请求的时候会检查你是否有请求头,如果没有请求头,就不会返回正常的内容,下面我来验证

    创建两个python文件test01,test02

    Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

    # test01 内容如下
    # coding=utf-8
    import requests
    
    url = "http://www.baidu.com"
    
    # 直接请求
    res = requests.get(url)
    # 获取响应体的内容
    data = res.text
    print(data)
    
    

    test01运行结果

    Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

    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运行结果

    Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

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

Python网络通信-python爬虫基础,python,爬虫,开发语言,笔记,经验分享,网络安全,安全

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

后续就可以进行简单的爬虫了,这个我会持续更新的文章来源地址https://www.toymoban.com/news/detail-820719.html

到了这里,关于Python网络通信-python爬虫基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】同一网络下,手机和电脑进行socket通信

    最近在学python网络编程,发现socket可以进行跨主机的进程通信,于是尝试用电脑作为服务端,手机作为客户端,来进行socket通信。 1.电脑开启热点(非必须) 注:只要电脑和手机处于同一个网络即可,比如连接同一个路由器。 手机连接到电脑热点,此时可查看电脑给手机分

    2024年02月09日
    浏览(40)
  • 【100天精通python】Day41:python网络爬虫开发_爬虫基础入门

    目录  专栏导读  1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略

    2024年02月12日
    浏览(49)
  • UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)

    目录 一、使用UE4建立TCP客户端 二、使用网络调试助手建立服务端 三、基于网络调试助手的服务端与UE客户端通信 四、基于python的TCP服务端与UE客户端通信  1.在虚幻商城中搜索socket来下载TCP Socket Plugin插件   2.安装到引擎,目前支持的版本是4.22-4.27和5.0  点击安装 大约30M 

    2024年01月16日
    浏览(51)
  • 【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP)

    专栏 :python网络爬虫从基础到实战 欢迎订阅!近期还会不断更新~ 另外 :如果想要看更多的计算机网络知识,可以关注我的专栏:计算机网络 往期推荐 : 【Python爬虫开发基础①】Python基础(变量及其命名规范) 【Python爬虫开发基础②】Python基础(正则表达式) 【Python爬虫

    2024年02月12日
    浏览(54)
  • 【网络基础】网络通信

    1.1 计算机网络 计算机网络的发展可以从独立模式逐步演进为网络互连模式,这个过程可以分为以下几个阶段: 独立模式 : 在计算机网络的早期阶段,每台计算机都是相对独立的实体,没有连接到其他计算机。每台计算机仅用于单独的任务,数据和资源的共享非常有限。这

    2024年02月12日
    浏览(50)
  • 探究代理技术在网络安全、爬虫与HTTP通信中的多重应用

    在当今高度互联的世界中,代理技术在网络安全、爬虫开发以及HTTP通信中扮演着举足轻重的角色。本文将深入探讨Socks5代理、IP代理以及HTTP代理在这些领域中的多重应用,探索其如何为我们创造更安全、高效的网络环境。 1. Socks5代理:构建安全通道与绕过限制 Socks5代理作为

    2024年02月11日
    浏览(46)
  • 【JAVAEE】网络原理之网络通信基础

    目录 1. 💋IP地址 1.1 🍟IP地址的格式 1.2 🎁特殊IP地址 2. ✨端口号 2.1  🎃端口号的格式 3. 😘网络协议 3.1 🎨为什么需要网络协议? 3.2 💛网络协议的概念与组成 3.3 🍉知名协议的默认端口 3.4 🐷五元组 4. 🍳网络协议分层 4.1 🍭协议分层的好处 4.2 🎩网络协议的分层模型一

    2023年04月24日
    浏览(42)
  • 网络基础:通信原理及网络协议

    集线器:一个口收到的信号原封不动地转发给其他所有口,其他口上的设备自己决定是否接收信号。有点类似广播,但必广播更纯粹。由于hub只是单纯地转发,所以工作在物理层(OSI第一层) 类似于广播模式,纯硬件 网桥:工作在数据链路层(OSI第二层)。以太网中,数据

    2024年02月21日
    浏览(48)
  • 【100天精通python】Day43:python网络爬虫开发_爬虫基础(urlib库、Beautiful Soup库、使用代理+实战代码)

    目录 1 urlib 库 2 Beautiful Soup库 3 使用代理 3.1 代理种类 HTTP、HTTPS 和 SOCKS5

    2024年02月12日
    浏览(54)
  • 9.1网络通信基础

    一.基础概念: 1)IP地址:描述网络上的一个设备所在的位置. 2)端口号(port):区分一个主机上不同的进程,和pid一样的作用,但两者不同. 3)协议:网络通信传输数据的含义,协议表示一种约定,这种约定可以是任意的.协议分层之后,上层不需要知道下层协议的细节,可以灵活地调整,替换某

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包