【发布时间】:2017-02-12 16:32:56
【问题描述】:
我对网络抓取很陌生。我想从here中抓取数据,主要是右边的数据,有国家的年份、国家和GDP。
我的代码如下:
from urllib.request import urlopen
from bs4 import BeautifulSoup
data = "http://databank.worldbank.org/data/reports.aspx?source=2&series=NY.GDP.MKTP.CD&country=#"
page = urlopen(data)
soup = BeautifulSoup(page,'html.parser')
name_box = soup.find('div',attrs = {'class':'canvas'})
name = name_box.text.strip()
print(name)
我可以获得数据,但只有前 10 名以上的数据。
所以我的问题是,当数据不在页面本身上时(即它是从其他地方导入的),我该如何解决此类问题。 提前感谢您的任何意见。
【问题讨论】:
-
搜索javascript渲染,用chrome开发者工具检查请求,或者使用selenium
-
(1) 您尝试打开的 URL 中有一个空白。 (2) 您试图接收什么数据?
-
感谢您指出,这是网站:databank.worldbank.org/data/… 否则您可以点击问题中的“此处”。
-
使用 Selenium:将该表滚动到底部几次,然后将生成的 html 提取到 bs4
-
滚动它没有帮助,它仍然打印出 'loading' 超过 10 个。
标签: python python-3.x web-scraping beautifulsoup