[网页抓取]使用selenium进行页面导航

问题描述 投票:0回答:1

出于个人兴趣,我想在以下网页上进行网络报废汽车评论

www.cardekho.com/user-reviews/maruti-alto-800

我使用以下代码成功取消了第一页上的评论

pip install webdriver-manager
import selenium
from selenium import webdriver
from selenium.webdriver import ActionChains

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('chromedriver.exe')

url = 'https://www.cardekho.com/user-reviews/maruti-alto-800'
driver.get(url)

reviews = driver.find_elements(By.CSS_SELECTOR, ".contentspace")


for i in reviews:
    i_title = i.find_element(By.CSS_SELECTOR, "h3 > a")
    i_desc = i.find_element(By.CSS_SELECTOR, "p")
    print(i_title.text, i_desc.text)

但我似乎无法废弃下一页上所有其他剩余的评论 它们的范围从 1 到 16,其中包括“下一个”。

  1. 你能帮我从所有其他页面上删除吗
  2. 我想在我的日期范围内的每条评论中包含星级指标。有什么办法也可以报废吗?

提前致谢

我尝试了以下代码,选择“页面栏”的主要部分 但是 page_bar[0] 给了我第 6 页,超过 [0] 会给我“列表超出范围”

    print(i.text)

page_bar[0].click()```
selenium-webdriver web-scraping beautifulsoup
1个回答
1
投票

如果单击下一页,您会注意到包含页码的链接。

例如第 2 页:https://www.cardekho.com/user-reviews/maruti-alto-800/2?subtab=latest

例如第 3 页:https://www.cardekho.com/user-reviews/maruti-alto-800/3?subtab=latest

因此,要完成任务,您只需通过更改链接中的数字添加一个 for 循环来遍历第 1-16 页,您就可以抓取所需的所有页面。

例如,

for i in range(1, 16):
    CurrentLinkIs = "https://www.cardekho.com/user-reviews/maruti-alto-800/" + str(i) + "?subtab=latest"
    #perform your scraping here
    #.
    #.
    #.
© www.soinside.com 2019 - 2024. All rights reserved.