如何一次从搜索结果中抓取多个页面



我试图从搜索结果中抓取多个页面并一次打印所有页面,但得到了一个空列表。

这是我使用的代码:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
element_list = []
for skip in range(0, 20, 10):

page_url = "https://jdih.esdm.go.id/index.php/web/result?tahun_terbit=2022,2021,2020,2019,2018,2017,2016,2015,2014&skip=" + str(skip)
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(page_url)

Tahun = driver.find_elements(By.CSS_SELECTOR, 'div.numb separator')
No_Peraturan = driver.find_elements(By.CSS_SELECTOR, 'span.result-value')
Nama_Peraturan = driver.find_elements(By.CSS_SELECTOR, 'div.result__content__item__title')
Deskripsi = driver.find_elements(By.CSS_SELECTOR, 'div.result__content__item__desc')

for i in range(len(Tahun)):
element_list.append([Tahun[i].text, No_Peraturan[i].text, Nama_Peraturan[i].text, Deskripsi[i].text])
print(element_list)
driver.close()

代码返回只返回一个空列表,如图所示在此处输入图像描述

注意:网站不像通常用于搜索结果那样使用"页面">,而是使用"跳过">

有人能帮我吗?

用于查找Tahun元素的CSS选择器不正确,因为有2个类分配给了div。这导致塔胡恩是一个空列表,并且由于将文本附加到element_list的循环是基于塔胡恩的长度的,因此不会附加任何内容。

将选择器更新为以下内容。

Tahun = driver.find_elements(By.CSS_SELECTOR, 'div.numb.separator')

最新更新