此代码:
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中的所有标签,我看不清楚原因。
答案 0 :(得分:0)
你可能有向后选择器。每个文档只允许一个标记具有特定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']
(未经测试)
答案 1 :(得分: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']
经过测试,适合我。