Python自动化办公——批量打开网页,从网页上下载文件到本地
优采云 发布时间: 2022-08-28 02:20Python自动化办公——批量打开网页,从网页上下载文件到本地
“经过前几节内容的学习,我们已经掌握了如何对文件进行处理,那么接下来我们将学习下一个模块的内容——即获取网页上的信息。目前我们许多的工作都离不开互联网,比如上网检索相关文献,查找数据等。如果我们学会让程序自己就能够上网,并检索网页上的信息,提取出我们想要的信息,岂不是为我们节省了很多时间!接下来几节我们将学习利用Python抓取网页的几个模块,这一节我们将主要学习如何利用程序批量打开网页,以及从网页上下载文件到本地。”
利用webbrowser批量打开网页
假如你的上级让你将表格里的城市的天气统计出来,我们首先可以在网页上搜索相关城市的天气信息,观察其不同城市的网址:
我们可以发现通过更改网址内的城市名称可以查看相应城市的天气信息。首先我们可以将表格内的城市信息提取出来:
import xlrddata = xlrd.open_workbook('D:\\Others\\公众号推文\\Python\\自动化办公\\9-1.xlsx')#未给参数默认为excel中的第一个sheetfor i in data.sheets(): #获取第一列数据 city = i.col_values(0) print(city)
输出:
['上海', '苏州', '成都', '重庆', '杭州', '南京', '无锡', '长沙']
接下来我们可以根据更改网址中的城市名称来利用webbrowser打开网页:
import xlrd,webbrowserdata = xlrd.open_workbook('D:\\Others\\公众号推文\\Python\\自动化办公\\9-1.xlsx')#未给data.sheets()参数默认为excel中的第一个sheetfor i in data.sheets(): #获取第一列数据 city = i.col_values(0) for c in city: webbrowser.open('https://weathernew.pae.baidu.com/weathernew/pc?query='+c+'天气&srcid=4982')
这样就可以自动将这些城市的天气信息打开了!
利用requests从网页上下载文件并保存到本地
Requests模块是常用的访问网页的工具,我们使用其get方法能够得到网页信息,我们这里以下载txt为例,get当中的网址我们通常称为url,这里的url为下载链接:
import requestsres = requests.get('https://www.gutenberg.org/cache/epub/1112/pg1112.txt')type(res)
输出:
requests.models.Response
其返回类型为response格式
#是否下载成功res.status_code == requests.codes.OK
如果返回True则表明下载成功
我们可以查看下载的内容长度:
len(res.text)
输出:
179380
还可以将其部分字符打印出来:
print(res.text[:200])
输出:
The Project Gutenberg EBook of Romeo andJuliet, by William Shakespeare<br /><br /><br /><br />*******************************************************************THIS EBOOK WAS ONE OF PROJECT GUTENBERG'SEARLY FILES
上面判断是否下载成功仅以True/False的形式返回,如果我们想让下载失败返回一个错误提醒则可以使用res.raise_for_status(),其只有在下载失败时会给予错误提示,并终止运行。
将文件下载到本地通常我们使用分块保存的操作:
#下载到本地,逐块保存#以写入的模式新建输出文件out = open('output.txt','wb')#分段保存,这里每段需要指定包含多少字节,我们通常传入10万字节forlineinres.iter_content(100000): out.write(line)out.close()
输出文件:
这里iter_content的参数我们通常选用10万,这样我们可以将我们的文本文件分为两块(100000,79380)循环保存下来。
既然已经学会了如何从网页上下载文件,那么相信这仅仅是个开始~大家可以发散思维自己动手试试~
以上即为本次全部内容,写文不易,如果您觉得我们的推送对您很有帮助,您可以通过赞赏来给予我们超大鼓励!跪谢~
END
参考资料
[1]Python编程快速上手:让繁琐工作自动化/(美)斯维加特(Al Sweigart)著;王海鹏译. -- 北京:人民邮电出版社,2016.7[2]xlrd · PyPI