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

目录
相关文章
|
17天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
18天前
|
Python
Python中的异步编程:使用asyncio和aiohttp实现高效网络请求
【10月更文挑战第34天】在Python的世界里,异步编程是提高效率的利器。本文将带你了解如何使用asyncio和aiohttp库来编写高效的网络请求代码。我们将通过一个简单的示例来展示如何利用这些工具来并发地处理多个网络请求,从而提高程序的整体性能。准备好让你的Python代码飞起来吧!
41 2
|
25天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
73 6
|
29天前
|
安全 网络安全 数据安全/隐私保护
|
4天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
19 8
|
2月前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
2月前
|
存储 网络安全 数据安全/隐私保护
|
14天前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
|
23天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
24天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
下一篇
无影云桌面