Python urllib 爬虫入门(1)

本文主要为Python urllib类库函数和属性介绍及一些简单示例。

目录

urllib爬取网页

简单示例

写入文件

其他读取方法

readline函数

readlines函数

response属性

当前环境信息

返回状态码

返回url地址

对url进行编码与解码

写入文件

总结


urllib爬取网页

通过python的urllib库请求爬取网页的一个简单示例。

简单示例

简单的使用urllib请求一个域名,并解析获取响应内容。

示例如下:

python 复制代码
import urllib.request

# 向指定url发起请求,并返回服务器响应数据(文件对象)
response = urllib.request.urlopen('http://www.baidu.com')
# 不解析的话为文件对象
# print(type(response.read()))
# 读取响应并解析为字符串格式
data = response.read().decode('utf-8')
print(data)

写入文件

将响应的网页内容写入本地文件,在实际应用中主要用于前期分析网页信息。

示例如下:

python 复制代码
import urllib.request

# 向指定url发起请求,并返回服务器响应数据(文件对象)
response = urllib.request.urlopen('http://www.baidu.com')
data = response.read()

import os
def writeLocalFile(content, name):
    with open(os.getcwd() + '/' + name + '.html', 'wb') as f:
        f.write(content)

writeLocalFile(data, 'baidu')

注意:这里不能把内容解析为字符串,否则写入时会报错。

其他读取方法

上文中例子使用是urllib.read()函数除外,还有其他的函数可以使用。

readline函数

读取文件一行,示例如下:

python 复制代码
print(response.readline())

执行结果:

readlines函数

读取文件的全部内容,会把读取到的数据赋值给一个列表变量。

示例如下:

python 复制代码
con = response.readlines()
print(type(con))
print(con)

执行结果:

建议使用readlines方式获取,可以对文件内容进行分行处理:如去除空格。

response属性

当前环境信息

返回当前环境的有关信息

示例如下:

python 复制代码
print(response.info())

执行结果:

返回状态码

可通过返回状态码,来判断请求状态和是否继续执行。

python 复制代码
print(response.getcode())

执行结果:

bash 复制代码
200

返回url地址

返回当前正在爬取的url地址,示例如下:

python 复制代码
print(response.geturl())

对url进行编码与解码

如果我们需要编码的URL中包含了特殊字符,如空格、斜杠、问号等,urllib quote()函数会将其替换为 % 加上换码后的ASCII码值,以此来保证URL的正确性。

示例如下:

python 复制代码
import urllib.request
url = 'http://www.baidu.com'
# 编码
newUlr = urllib.request.quote(url)
print(newUlr) # http%3A//www.baidu.com


# 解码
newUrl2 = urllib.request.unquote(newUlr)
print(newUrl2) # http://www.baidu.com

写入文件

可使用urllib.request.urlretrieve() 函数把爬取到的网页直接写入文件中。

示例如下:

python 复制代码
import urllib.request

url = 'http://www.baidu.com'
fileName = './filename1.html'
info = urllib.request.urlretrieve(url, filename=fileName)
print(info)

执行结果:

bash 复制代码
('./filename1.html', <http.client.HTTPMessage object at 0x000002379A37D5C8>)

总结

本文主要为Python urllib类库函数和属性介绍及一些简单示例。

相关推荐
amIZ AUSK3 分钟前
Spring Boot 自动配置
java·spring boot·后端
努力学习的小廉3 分钟前
Python 零基础入门——基础语法(一)
java·网络·python
源码之家13 分钟前
计算机毕业设计:Python二手车数据分析推荐系统 Flask框架 requests爬虫 协同过滤推荐算法 可视化 汽车之家 机器学习(建议收藏)✅
大数据·python·机器学习·数据分析·flask·汽车·课程设计
章鱼丸-23 分钟前
DAY43
python
zero159733 分钟前
Python 8天极速入门笔记(大模型工程师专用):第七篇-文件操作 + 异常处理,大模型实战落地关键
python·ai编程·大模型编程语言
T0uken39 分钟前
【Python】uvpacker:跨平台打包 Windows 应用
开发语言·python
Li emily1 小时前
解决了用美股历史数据api分析价格波动的困扰
数据库·人工智能·python
huihuihuanhuan.xin1 小时前
spring循环依赖以及补充相关知识
java·后端·spring
Xpower 171 小时前
PHM念叨叨系列--工业场景大模型幻觉治理
人工智能·python·语言模型
请数据别和我作队1 小时前
基于 DeepSeek API 的 ASR 文本纠错脚本实战:Python 多线程批量处理 JSONL 语音转写数据
开发语言·经验分享·python·自然语言处理·nlp