Web抓蟒蛇|有限的对象

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

我正在尝试从使用pc部件的网站获取数据,并且我在该页面上有超过3500个部件的链接,问题是如果我使用干净的链接:https://www.komplett.no/search?q=pc

在我向下滚动并加载新项目之前,它只获取那里的数据。

所以我把链接编辑成这样:https://www.komplett.no/search?q=pc&hits=1000

现在它从1000多种产品中获取所有信息,但我不能过去,因为脚本只是不想工作,我没有得到错误或任何东西。顺便说一句,我只买了待售的东西,所以它的数据并不多。

我想要一种方法来浏览孔页,而不必将限制写入我想要通过的产品数量。

python web web-scraping
1个回答
0
投票

这是我如何处理这个网络抓取任务:

当您滚动到底部时,看起来有24个新项目添加到页面中。由于我看到当我们使用pc过滤时有3919个结果,让我们使用像PhantomJS这样的无头浏览器/ JavaScript引擎并告诉它滚动到页面底部然后等待几秒钟以加载新结果,然后重复进程数量为3919/24次。为此,您需要安装像PhantomJS这样的webdriver

from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get('https://www.komplett.no/search?q=pc')
num_pages = int((3919/24) + 1)
for _ in range(num_pages):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(3)

html = driver.page_source.encode('utf-8')

完成循环后,可以调用.driver.page_source.encode('utf-8')来捕获DOM树上当前加载的html,然后使用该数据进行其余的Web报废。

顺便说一句,我刚才做了一个PC刮片项目,here's the link如果你想看看它。

© www.soinside.com 2019 - 2024. All rights reserved.