4.1 问题
编写一个get_web.py脚本,实现以下功能:
爬取的网页为http://www.tedu.cn
保存的文件名为/tmp/tedu.html
4.2 方案
导入sys模块,用sys.argv方法获取get_web函数实参,让用户在命令行上提供http://www.tedu.cn和/tmp/tedu.html两个参数,调用get_web函数实现如下功能:
1)导入urllib模块,使用urllib模块的urlopen函数打开url(即网址),赋值给html
2)以写方式打开/tmp/tedu.html文件
3)以循环方式:
读html获取的数据,保存到data
将data写入/tmp/tedu.html
4)关闭html
4.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:编写脚本
[root@localhost day11]# vim get_web.py
#!/usr/bin/env python3
import sys
from urllib.request import urlopen
def get_web(url, fname):
html = urlopen(url) #使用urllib模块的urlopen函数打开url,赋值给html
with open(fname, 'wb') as fobj:
while True:
data = html.read(4096)
if not data:
break
fobj.write(data)
html.close()
if __name__ == '__main__':
get_web(sys.argv[1], sys.argv[2]) #让用户在命令行上提供网址和下载数据保存位置
步骤二:测试脚本执行
[root@localhost day11]# python3 get_web.py http://www.tedu.cn /tmp/tedu.html
[root@localhost day11]# cat /tmp/tedu.html
执行cat命令可以看到/tmp/tedu.html文件中爬取到的内容