【问题标题】:Avoid downloading images using Beautifulsoup and urllib.request避免使用 Beautifulsoup 和 urllib.request 下载图片
【发布时间】:2016-04-03 08:31:24
【问题描述】:

我正在使用 BeautifulSoup ('lxml' parser) 和 urllib.request.urlopen() 从网站获取文本信息。但是,当我在 Acitivity Monitor 中检查网络部分时,我看到 python 下载了大量数据。这表明不仅下载了文本,还下载了图像。

是否可以在使用 BeautifulSoup 进行网页抓取时避免下载图像?

【问题讨论】:

  • ?你真的能看到你的回复中写的原始图像字节码吗?否则我不确定你为什么要下载图像。图像通常单独存储在带有src 属性的<img> 中 - HTML 抓取工具将包含指向以文本表示的图像的链接,但实际上不会强制下载图像,因为您从未告诉它跟随链接。
  • 我怀疑该页面的数据比您想象的要多。内联 JS 可以打出一拳。
  • 我检查了“汤”结果并将其保存到文本文件中。你是对的,它是 256 kB,并且有 <img> 属性链接到实际图像。感谢您的帮助 Akshat!

标签: web-scraping beautifulsoup urllib urlopen


【解决方案1】:

这不太可能,因为图片不在<img src="/here/goes/this/img".. 中的页面上。浏览器或urllib 必须多次访问静态文件(如 JS、img、CSS)所在的任何位置。减小大小的一种可能解决方案是请求压缩内容。

"Accept-Encoding":"gzip" 标头添加到Request 对象。如果服务器支持的话,缩小尺寸就好了。然后你会gzip.decompress()它来获取字符串数据。

【讨论】:

    猜你喜欢
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多