【问题标题】:extracting image file name from the web [closed]从网上提取图像文件名[关闭]
【发布时间】:2013-12-08 02:50:14
【问题描述】:

我正在尝试从网络上抓取图像信息,我想知道是否有任何方法可以提取图像文件名。例如,如果以下 HTML 表达式存储在源代码中,

 <img src=http://www.adbongo.com/wp-content/uploads/2013/09/digital-bongo.jpg>,

我想提取digital-bongo.jpg 部分。

谢谢,

【问题讨论】:

  • 使用 HTML 解析器?当然,我会避免使用正则表达式。
  • 嗯...这实际上可能是一个更好的主意...谢谢。
  • 该条目是否可能只是 &lt;img src="digital-bongo.jpg"&gt; ?或者&lt;img src="http://mysite/imgejpg.jpg"&gt; 怎么样?如果是这样,那么src=["']?(?:.*/|/)?(.*(?:png|jpg|gif))(?:\1)?.*&gt;

标签: python regex web-crawler


【解决方案1】:
import os
>>> path,file_=os.path.split('http://www.adbongo.com/wp-content/uploads/2013/09/digital-bongo.jpg')
>>> file_
'digital-bongo.jpg'

【讨论】:

  • ...path,file ?以前从未见过这样的表达......有趣
  • 太棒了!太感谢了! :)
  • 注释文件是保留字。应该使用 file_ 或其他一些变量名。我无法编辑,因为更改少于 SO 不允许的 6 个字符。
  • 感谢@Bufke 根据您的建议更改了 :)
【解决方案2】:

命名html内容的来源htmlcontent,然后使用lxml解析页面:

>>> from lxml import etree
>>> html = etree.HTML(htmlcontent)
>>> for node in html.xpath('//img/@src'):
...     print(node.text.rsplit('/', 1)[1])

【讨论】:

    【解决方案3】:

    使用 BeautifulSoup。这将拉出所有链接; .jpg、.gif、.png 等。然后您可以使用进一步的代码细化来获得 just jpg 或 gif 或其他...

    import urllib2
    from bs4 import BeautifulSoup
    
    url1 = "http://www.thrashermagazine.com"
    content1 = urllib2.urlopen(url1).read()
    soup = BeautifulSoup(content1)
    for link in soup.findAll('img'):
       print link.get('src')
    ### or alternatively ###
    for link in soup.findAll('img'):
       stuff = link.get('src')
       if '.jpg' in stuff:
          print stuff         #This will only print results with .jpg
    

    *只需将 您的 url 放在那里。我以它为例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-30
      • 2012-04-11
      • 2011-09-03
      • 1970-01-01
      • 2011-03-08
      • 2017-11-01
      • 2010-12-09
      • 2010-10-17
      相关资源
      最近更新 更多