0

このコード:

from bs4 import BeautifulSoup
from urllib2 import urlopen

f = urlopen("http://www.groupon.co.uk/").read()

bs = BeautifulSoup(f)

for tag in bs.find_all('ul', {'id': 'jCitiesSelectBox'}):
    print tag.li['onclick']

最初のタグのみを出力し、jCitiesSelectBox のすべてのタグを出力しません。その理由がわかりません。

4

2 に答える 2

0

おそらくセレクターが逆になっています。特定のを持つことができるのは、ドキュメントごとに1つのタグのみidです。指定id="jCitiesSelectBoxしたのは、「タグ内にある場合にのみ、でタグを検索する<ul>」です。

編集:

おそらく必要なのは、<li>タグ内のすべてのタグを次のid="jCitiesSelectBox"ように検索することです。

cities_list = bs.find('ul', {'id': 'jCitiesSelectBox'})
for tag in cities_list.find_all('li'):
    print tag['onclick']

(未検証)

于 2012-05-19T18:20:56.900 に答える
0
#!/usr/bin/python
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urllib2 import urlopen

f = urlopen("http://www.groupon.co.uk/").read()

bs = BeautifulSoup(f)

f = urlopen("http://www.groupon.co.uk/").read()

bs = soup(f)

tags = bs.findAll('ul', attrs={'id' : 'jCitiesSelectBox'})
for tag in tags:
    lip = tag.findAll('li')
    for li in lip:
        print li['onclick']

テスト済み、私のために動作します。

于 2012-05-24T10:06:58.293 に答える