需求
网上阅读到不错的文章,收藏到google书签后想要下载到本地,方便查询。
BeautifulSoup
python提供了一个便捷的工具抓取网页的内容叫BeautifualSoup
,简单用法:
#code by每日教程teachcourse.cn
from urllib.request import urlopen
from bs4 import BeautifulSoup
url='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节点就可以拉取内容到本地。
当前文章价值8.77元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)
你可能感兴趣的文章
分类:python
标签:BeautifulSoup, lxml
评论已关闭!