【发布时间】:2017-12-01 19:02:12
【问题描述】:
通过链接,我正在尝试创建两个列表:一个用于国家/地区,另一个用于货币。但是,我被困在某个地方,它只给了我第一个国家名称,但没有迭代到所有国家的列表。任何有关如何解决此问题的帮助将不胜感激。在此先感谢。
这是我的尝试:
from bs4 import BeautifulSoup
import urllib.request
url = "http://www.worldatlas.com/aatlas/infopage/currency.htm"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X
10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80
Safari/537.36'}
req = urllib.request.Request(url, headers=headers)
resp = urllib.request.urlopen(req)
html = resp.read()
soup = BeautifulSoup(html, "html.parser")
attr = {"class" : "miscTxt"}
countries = soup.find_all("div", attrs=attr)
countries_list = [tr.td.string for tr in countries]
for country in countries_list:
print(country)
【问题讨论】:
-
您是否打印出
countries_list来检查它是否包含多个条目? -
是的,我做到了。它只打印列表中的第一个国家
-
我刚刚检查了你的
countries_list,它只包含Afghanistan。不是迭代,问题是[tr.td.string for tr in countries]
标签: python python-3.x web-scraping beautifulsoup