0

私はhttpアドレスを与えられた小さなプログラムを書いています、それはその中の画像を見つけてダウンロードします。私の現在の状況はこれです:

import urllib2, html

class HTMLNode(object):
    def __init__(self,tag,attr,content,closed=True):
        self.tag = tag
        self.attr = attr
        self.content = content
        self.closed = closed

    def istext(self):
        return self.tag == '_text_'

    def tostring(self):
        if self.istext(): 
            return self.content
        ret = '<'+self.tag
        for k, v in self.attr.items():
            ret += ' '+k+'="'+v+'"'
        ret += '>'
        if self.closed:
            for c in self.content:
                ret += c.tostring()
            ret += '</'+self.tag+'>'
        return ret

    def find_by_tag(self,tag):
            ret = []
            if self.tag == tag: ret += [self]
            if not self.istext():
                for c in self.content:
                    ret += c.find_by_tag(tag)
            return ret

def imagegrab(url):
    req = urllib2.Request(url)
    response = urllib2.urlopen(req)
    output = open(url, 'wb')
    output.write(response.read())

欠落しているリンクは、HTMLNodeクラスの「find_by_tag」関数を使用して、プログラムが「」タグをスキャンし、Webサイトから写真をダウンロードする方法を見つけることです。誰かがそれを手伝ってくれる?

4

1 に答える 1

2

他の人がすでにこの作業を行っています。具体的には、Python 用の HTML 解析ライブラリであるBeautifulSoupを見てください。あなたはするだろう

soup = bs4.BeautifulSoup(...)
for img in soup("img"):
    print img.src

または類似; 明らかに、ライブラリはそれよりもはるかに強力です。

美しくシンプルな API を備えた urllib ライブラリ ファミリのラッパーであるrequestsの使用を検討することもできます。そのためにあなたはするでしょう

soup = bs4.BeautifulSoup(requests.get(url).text)
于 2013-01-09T08:30:20.853 に答える