我想通過(guò)點(diǎn)擊歌曲來(lái)抓取以下網(wǎng)站上的每一頁(yè):https://www.top40.nl/top40/2020/week-34(每年和周數(shù)),然后移動(dòng)到“songinfo”,然后抓取表中列出的所有數(shù)據(jù)。對(duì)于這個(gè)問(wèn)題,我到目前為止只刮了標(biāo)題。這是我使用的網(wǎng)址: url = 'https://www.top40.nl/top40/'但是,當(dāng)我打印歌曲列表時(shí),它只會(huì)返回網(wǎng)站上的最后一個(gè)標(biāo)題。因此,我相信我正在重寫。希望有人能解釋我犯了哪些錯(cuò)誤,以及是否有更簡(jiǎn)單的方法來(lái)清除每一頁(yè)上的表格,很高興聽(tīng)到。請(qǐng)?jiān)谙旅嬲业轿业腜ython代碼:for year in range(2015,2016): for week in range(1,2): page_url = url+str(year) + '/' + 'week-' + str(week) driver.get(page_url) lists = driver.find_elements_by_xpath("//a[@data-linktype='title']") links = [] for l in lists: print(l.get_attribute('href')) links.append(l.get_attribute('href')) for link in links: driver.get(link) driver.find_element_by_xpath("//a[@href='#songinfo']").click() songs = driver.find_elements_by_xpath(""".//*[@id="songinfo"]/table/tbody/tr[2]/td""") songs_list = [] for s in songs: print(s.get_attribute('innerHTML')) songs_list.append(s.get_attribute('innerHTML'))```
1 回答
12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
該行songs_list = []位于for link in links循環(huán)內(nèi)部,因此每次新的迭代都會(huì)將其設(shè)置為空列表(然后附加到這個(gè)新的空列表)。結(jié)束所有循環(huán)后,您只能看到songs_list創(chuàng)建的循環(huán)。
最簡(jiǎn)單的解決方法是將行放在songs_list = []所有 for 循環(huán)之外,例如:
songs_list = []
for year in range(2015,2016):
for week in range(1,2):
# etc
添加回答
舉報(bào)
0/150
提交
取消
