首页 > 解决方案 > 在 URL 不包含页码的情况下,为多个页面抓取具有动态加载数据的网站

问题描述

我正在尝试从通过 javascript 加载数据的网站上抓取数据,并且主 url 不包含页码。网址是网站链接。为了抓取数据,我正在使用 python 编程语言和硒。但是我只有第一页数据,我无法获得其他页面,例如第 1 页、第 2 页、第 3 页。

我已经提到了我正在问候单页数据的代码。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager


from bs4 import BeautifulSoup
from selenium import webdriver
url ='https://www.ikh.se/sv/kemikalier--smorjmedlar/fordon-kemikalier'

browser = webdriver.Chrome(ChromeDriverManager().install())

browser.get(url)
data = browser.find_element_by_id('dnsList')
dataList = data.find_elements_by_tag_name('a')
i = 1
for item in dataList:
    productName = item.find_element_by_class_name('ProdName')
    productPrice = item.find_element_by_class_name('ProdPrice')
    productCode = item.find_element_by_class_name('ProdCode')
    pName = productName.text
    pPrice = productPrice.text
    pCode = productCode.text

    print( '#SL : ' + str(i) + '  Product Code : ' + pCode + '-->' + 'ProductName : ' + pName + ' Product Price : ' + pPrice)
    i = i + 1

标签: pythonseleniumweb-scrapingbeautifulsoupwebdriverwait

解决方案


有一个“PRODUKTLIST-PDF”

<form id="pdf-form" class="pdf-form" action="/getProductListPDF.asp?sua=2&amp;lang=2&amp;navid=14456615" method="POST" target="_blank">  

在您获得navid每个菜单的位置,您可以将其添加到navid您的 api 以将菜单的产品详细信息作为 json 获取,这会更快

api(每个菜单只有导航更改)

https://www.ikh.se/sysNet/getProductsJSON/getProductsJSONDB.aspx?sua=2&lang=2&navid=14456615

推荐阅读