需求
网上阅读到不错的文章,收藏到google书签后想要下载到本地,方便查询。
BeautifulSoup
python提供了一个便捷的工具抓取网页的内容叫 BeautifualSoup
,简单用法:
#code by每日教程teachcourse.cnfrom urllib.request import urlopenfrom bs4 import BeautifulSoupurl=\\\'https://baidu.com\\\'html = urlopen(url)bsObj = BeautifulSoup(html.read())print(bsObj)
获取内容
获取指定网页的内容。
使用 find()
方法获取某一个html内容
比如:获取logo里面的内容,PC端打开网页按下F12,找到需要获取内容的html节点
#code by每日教程teachcourse.cn#...bsObj = BeautifulSoup(html.read())print(bsObj.find(\\\'div\\\',{\\\'id\\\':\\\'lg\\\'}))
将内容保存到txt文件中
# 保持到txt文件中with open(\\\'content.txt\\\',\\\'w\\\', encoding=\\\'utf8\\\') as txt_file: txt_file.write(logo_obj.prettify())
运行后,打印当前节点的内容
获取图片资源
获取所有的 img
标签,使用 find_all()
方法
#code by每日教程teachcourse.cn#...# 获取所有图片html标签img_list=logo_obj.find_all(\\\'img\\\')print(img_list)
将图片保持到本地
#code by每日教程teachcourse.cn#...# 将图片下载本地for img in img_list: url = img[\\\'src\\\'] filename = url.split(\\\'/\\\')[-1] # 因为src缺少https:前缀,需要手动添加 urllib.request.urlretrieve(\\\'https:\\\'+url, filename)
封装成工具
能够将一个网页的内容下载到txt文档,同时也可以下载图片到本地,可以封装成一个工具,传入网页的url和html节点就可以拉取内容到本地。
原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/49861.html