我使用下面的代码来提取这个页面上提到的城市列表,但它只给出了前23个城市。 不知道我哪里出错了!你知道吗
import requests,bs4
res=requests.get('http://www.citymayors.com/statistics/largest-cities-population-125.html')
text=bs4.BeautifulSoup(res.text,"lxml")
fields=text.select('td[bgcolor="silver"] > font[size="-2"] > b')
print len(fields)
for field in fields:
print field.getText()
这是我得到的结果:
23
Tokyo/Yokohama
New York Metro
Sao Paulo
Seoul/Incheon
Mexico City
Osaka/Kobe/Kyoto
Manila
Mumbai
Delhi
Jakarta
Lagos
Kolkata
Cairo
Los Angeles
Buenos Aires
Rio de Janeiro
Moscow
Shanghai
Karachi
Paris
Istanbul
Nagoya
Beijing
但这个网页包含125个城市。你知道吗
lxml对我来说很好,我使用您自己的代码得到124个城市,因此它与解析器无关,您要么使用的是旧版本的bs4或者这是一个编码问题,您应该调用.content并让请求处理编码,您还缺少一个使用您的逻辑得到所有125个城市:
如果我们运行它,你可以看到我们得到所有的城市:
相关问题 更多 >
编程相关推荐