如何在 Python 中正确地从 javascript 网站抓取数据?
How to properly scrape data from a javascript website in Python?
我是 python 编程的新手,我想练习网页抓取。我最初的目的是根据他们的分数列出一些国家/地区的前 10 名球员。但似乎,我无法获得页面的全部源代码,因此我无法创建我的数据库。因此,当我在“inspect\elements”上单击 Chrome 时,我能够看到必要的数据,但是使用下面的代码,我无法获得所有数据。
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)
你能告诉我,我做错了什么吗?
试用了这段代码,应该可以工作:
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)
只需将 firefox 替换为 chrome,因为我没有安装 Chrome 驱动程序
我是 python 编程的新手,我想练习网页抓取。我最初的目的是根据他们的分数列出一些国家/地区的前 10 名球员。但似乎,我无法获得页面的全部源代码,因此我无法创建我的数据库。因此,当我在“inspect\elements”上单击 Chrome 时,我能够看到必要的数据,但是使用下面的代码,我无法获得所有数据。
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)
你能告诉我,我做错了什么吗?
试用了这段代码,应该可以工作:
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)
只需将 firefox 替换为 chrome,因为我没有安装 Chrome 驱动程序