如何从 Python 中的 javascript 网站正确抓取数据?

时间:2021-02-28 16:47:21

标签: python selenium dom web-scraping webdriver

我是 Python 编程的新手,我想练习网页抓取。我最初的目的是根据他们的积分列出一些国家的前10名球员。但似乎我无法获得页面的整个源代码,因此我无法创建我的数据库。因此,当我在 Chrome 中单击“inspect\elements”时,我能够看到必要的数据,但是使用下面的代码,我无法获得所有数据。

from selenium import webdriver
url = 'https://aoe2.net/#aoe2de-leaderboard-rm-1v1'
driver = webdriver.Chrome()
code = driver.get(url)
source = driver.page_source
print(source)

你能告诉我,我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

尝试了这段代码,应该可以工作:

from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
code = driver.get('https://aoe2.net/#aoe2de-leaderboard-rm-1v1')
sleep(5) #Since my internet is slow, if yours is fast enough then you can comment this line
d1 = {}
for i in range(1,11):
    if i % 2 == 1:
        val = 'odd'
    else:
        val = 'even'
    a = driver.find_element_by_css_selector(f'tr.{val}:nth-child({i}) > td:nth-child(3) > a:nth-child(3)').text
    d1[i] = a
print(d1)

用 chrome 替换 firefox,因为我没有安装 Chrome 驱动程序