使用python |有限对象进行Web刮取

2024-09-27 21:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

现在,它从1000多个产品中获取了所有信息,但我不能重复,因为脚本不想工作,我没有收到任何错误或任何东西。 顺便说一句,我只买打折的东西,所以没有那么多数据

我想找到一种方法,不必写下我想通过的产品数量的限制就可以通过这个页面


Tags: 项目nohttps信息编辑search产品网站
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:03

以下是我将如何完成此网页清理任务:

当您滚动到底部时,页面中似乎添加了24个新项目。因为当我们按pc过滤时,我看到有3919个结果,所以让我们使用无头浏览器/JavaScript引擎,比如PhantomJS,让它滚动到页面底部,然后等待几秒钟,等待新结果加载,然后重复3919/24次这个过程。要使其正常工作,您需要安装像PhantomJS这样的Web驱动程序

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的其余部分

顺便说一句,我刚才做了一个电脑抓取项目,here's the link如果你想查看的话

相关问题 更多 >

    热门问题