python网络爬虫urllib.request模块get请求示例

简介: python网络爬虫urllib.request模块get请求示例

urllib.request使用示例

示例

需求:向向百度发请求,获取响应,得到html文件

import urllib.request
response = urllib.request.urlopen('https://www.baidu.com')  # 在urlopen()中传入url参数,以获取响应对象
print(response)
# print(type(response))  # 这个response不同于requests.get()得到的响应对象,这里是一个HTTP响应对象 <class 'http.client.HTTPResponse'>
# 用read()把响应对象的内容读取出来
# print(response.read()) # 字节流

print(response.read().decode('utf-8'))

# print(response.getcode())  # 得到响应码,200表示请求成功
# print(response.geturl())  # 返回实际数据的url(可以防止重定向问题)

输出结果:

<http.client.HTTPResponse object at 0x000002028753E588>
<html>
<head>
    <script>
        location.replace(location.href.replace("https://","http://"));
    </script>
</head>
<body>
    <noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>
</body>
</html>

注:这里只演展示思路逻辑,没有构建请求对象,没有使用UA.。所以得到的源码不是真实的源码。真实的源码更加复杂,设置UA过程点击链接:urllib.request构建请求对象(写入UA)

方法解读

urllib.request 的 urlopen() 方法

  • urllib.request.urlopen() 发请求,得到的response为响应对象,urlopen()的常用参数是url。
    默认是get访问,如果想要post访问需要设置参数data,格式是一个字典,这里不再详述。

response响应对象的方法

read()方法

  • 对于得到的响应对象response,使用read()方法可以读取访问到的字节流

print(response.read())

decode()方法

  • 对得到的字节流对象,使用decode()方法解码为字符串。常用参数为 ‘utf-8’

print(response.read().decode(‘utf-8’))

getcode()方法

  • 得到响应码,200表示请求成功

geturl()方法

  • 返回实际数据的url(可以防止重定向问题)

print(response.geturl())

目录
相关文章
|
1月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
|
5月前
|
数据采集 存储 开发者
如何动态调整Python爬虫的Request请求延迟
如何动态调整Python爬虫的Request请求延迟
202 13
|
6天前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
21天前
|
数据采集 消息中间件 NoSQL
分布式爬虫的全局请求间隔协调与IP轮换策略
分布式爬虫的全局请求间隔协调与IP轮换策略
|
1月前
|
XML JSON JavaScript
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡
61 0
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡
|
2月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
74 4
|
3月前
|
数据采集 Python
如何通过requests和time模块限制爬虫请求速率?
如何通过requests和time模块限制爬虫请求速率?
|
4月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
131 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
5月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
745 31
|
5月前
|
数据采集 Web App开发 文字识别
Python爬虫多次请求后被要求验证码的应对策略
Python爬虫多次请求后被要求验证码的应对策略

推荐镜像

更多