程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 png 网页抓取大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从 png 网页抓取?

开发过程中遇到从 png 网页抓取的问题如何解决?下面主要结合日常开发的经验,给出你关于从 png 网页抓取的解决方法建议,希望对你解决从 png 网页抓取有所启发或帮助;

我正在尝试从该网站 https://www.snow-forecast.com/resorts/PozzaDiFassa/history 中检索信息,从图表“平均雪况”中获取每周的雪类型级别。

我尝试使用 BeautifulSoup 来检索图表的不同级别,但除了这个之外,它们都是空的:

soup = BeautifulSoup(requests.get(link).content,"HTMl.parser")                                     
div = soup.find('div',{"ID" : "bluebird"})
div

给出:

<div ID="bluebird"><img alt="Average snow Conditions in Pozza di Fassa Graph. (updated on: 2021-07-11)" src="/system/charts-png/PozzaDiFassa/bluebird.png"/></div> 

每当我尝试检索较低级别时,“div”都会返回空。我认为它必须链接到图形是 png 的事实。那我该怎么做?

预先感谢您的帮助!

解决方法

目标路径在图片节点

src ="/system/charts-png/PozzaDiFassa/bluebird.png"

您可以结合像这样的网络域

https://www.snow-forecast.com/system/charts-png/PozzaDiFassa/bluebird.png

我认为这是您想要的图片网址

,

您无法从图像中抓取信息,这只是像素(颜色)网格。但是“Average snow conditions in...” 图表不是图像,也不是 png,而是使用 SVG 以纯 HTML 格式绘制的。

如果您转到 Firefox 中的开发人员工具 (Ctrl-Shift-i),请右键单击图表,然后选择 Inspect Element,您将看到 <div id="bluebird"> 元素,然后在它下面没有其他 <div> 元素。相反,有一个 <svg> 元素、几个 <g>(组)元素和 <rect>(矩形)元素。在那里您可以找到构成图形的矩形的几何形状。不幸的是,这并没有为您提供您正在寻找的实际数据(尽管您可能能够从矩形几何结构中重建它)。

如果您要检索的是每个类别(粉末、蓝鸟等)中的天数,它会显示在弹出窗口中,但仅当您右键单击图表中的列时,再次,并非所有内容都可供您进行网络抓取。

您可以尝试以下操作:使用SELEnium 之类的工具以编程方式右键单击每一列。此时,弹出窗口作为 <div class="hint"> 元素存在于 DOM 树中(再次参见开发工具),每个类别都有一个“hint__row”,而“hint__value”元素恰好包含想。不容易,但可行。

,

用于获取链接列表
img_list = [x.get('src') for x in soup.SELEct(img_SELEctor)]
然后您可以在下面将图像保存在您的目录中

if len(os.listdir(path)) == 0:
            for i in contents:
                r = requests.get(I[1],headers=headers)
                with open(i[0],"wb")as f:
                    f.write(r.content)
            print("--- finished {}---".format(len(os.listdir(path))))

大佬总结

以上是大佬教程为你收集整理的从 png 网页抓取全部内容,希望文章能够帮你解决从 png 网页抓取所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。