首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python中的图像抓取程序无法正常运行

Python中的图像抓取程序无法正常运行
EN

Stack Overflow用户
提问于 2012-10-17 14:52:43
回答 5查看 440关注 0票数 5

我的代码只返回一个空字符串,我不知道为什么。

代码语言:javascript
运行
AI代码解释
复制
import urllib2

def getImage(url):
    page = urllib2.urlopen(url)
    page = page.read() #Gives HTML to parse

    start = page.find('<a img=')
    end = page.find('>', start)

    img = page[start:end]

return img

它只会返回找到的第一个图像,所以它不是一个很好的图像刮取器;也就是说,我现在的主要目标是能够找到一个图像。我做不到。

EN

回答 5

Stack Overflow用户

发布于 2012-10-17 15:00:10

您应该使用一个库来实现这一点,并且有几个库,但是为了回答您的问题,请更改您向我们展示的代码……

您的问题是,您正在尝试查找图像,但是图像没有使用<a ...>标记。它们使用<img ...>标记。下面是一个示例:

代码语言:javascript
运行
AI代码解释
复制
<img src="smiley.gif" alt="Smiley face" height="42" width="42">

您应该做的是将start = page.find('<a img=')行更改为start = page.find('<img '),如下所示:

代码语言:javascript
运行
AI代码解释
复制
def getImage(url):
    page = urllib2.urlopen(url)
    page = page.read() #Gives HTML to parse

    start = page.find('<img ')
    end = page.find('>', start)

    img = page[start:end+1]
    return img
票数 2
EN

Stack Overflow用户

发布于 2012-10-17 15:04:11

考虑使用BeautifulSoup来解析您的超文本标记语言:

代码语言:javascript
运行
AI代码解释
复制
from BeautifulSoup import BeautifulSoup
import urllib
url  = 'http://www.google.com'
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
for img in soup.findAll('img'):
     print img['src']
票数 2
EN

Stack Overflow用户

发布于 2012-10-17 14:57:12

关于用ruby抓取屏幕的文章:http://www.igvita.com/2007/02/04/ruby-screen-scraper-in-60-seconds/它不是抓取图像,但它是一篇很好的文章,可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12937144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文