第八周总结
爬虫
urllib的基本应用
1.读取并显示网页内容
Python 标准库urllib.request 中的 urlopen()函数可以用来打开一个置顶的URL,打开成功之后,可以像读取文件一样使用 read() 方法来读取网页上的数据。
读取到的是二进制数据,需要使用 decode() 方法进行正确的解码。 对于大部分网站而言,使用 decode() 方法默认的 UTF8 是可以正常解码的。
读取并显示 http://www.python.org 页面的内容:
import urllib.request fp = urllib.request.urlopen(r'http://www.python.org') print(fp.read(100)) print(fp.read(100).decode()) fp.close()
2.提交网页参数
对于动态网页而言,经常需要用户输入并提交参数。常用的提交参数的方式有GET和POST两种。
python标准库urllib.prase 中提供的 urlencode() 函数可以用来对用户提交的参数进行编码,然后再通过不同的方式传递给 urlopen() 函数。
使用GET方法读取并显示指定 url 的内容
import urllib.request import urllib.parse params = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) url = "http://www.musi-cal.com/cgi-bin/query?%s" % params with urllib.request.urlopen(url) as f: print(f.read().decode('utf-8')
使用POST方法提交参数并读取指定页面内容
import urllib.request import urllib.parse data = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) data = data.encode('ascii') with urllib.request.urlopen("http://requestb.in/xrb182xr", data) as f: print(f.read().decode('utf-8'))
3. 使用HTTP代理访问页面
当无法直接访问特定的网站时,可以通过一个代理来访问目标网站。代理就像一个中间人,负责把我们的请求发送给目标网站,并把目标网站的响应发给我们。
具体实现时,需要先使用标准库 urllib.request 的 FancyURLopener 类打开代理并创建代理对象,然后再通过代理对象的 open() 方法访问目标网站。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY