0

私はpythonが初めてです。これを単純化する方法はありますか:

def getDivs():
    divs = soup.findAll(name = "div", attrs = {"class" : "resultCell"}, recursive = True)
    for div in divs:
        h2 = div.find("h2")
        a = h2.find("a")
        href = a["href"]
        yield (href)

divs = list(getDivs())

getDivs の代わりに無名関数を作成できるはずだと思います。(疑似コード) のようなもの:

divs = 

  [
     divs = soup.findAll(name = "div", attrs = {"class" : "resultCell"}, recursive = True)
     for div in divs:
        h2 = div.find("h2")
        a = h2.find("a")
        href = a["href"]
        yield (href)
  ]

ありがとう

4

1 に答える 1

3

リスト内包表記を使用するだけです:

divs = [ div.find("h2").find("a")["href"]
           for div in soup.findAll(name = "div",
                                   attrs = {"class" : "resultCell"},
                                   recursive = True) ]

ただし、適切な XML 解析ツールを使用することをお勧めします。

于 2013-05-09T13:32:06.423 に答える