我正在尝试从使用pc部件的网站获取数据,并且我在该页面上有超过3500个部件的链接,问题是如果我使用干净的链接: https://www.komplett.no/search?q=pc
它只会在我向下滚动之前获取那里的数据并加载新项目。
所以我把链接编辑成这样: https://www.komplett.no/search?q=pc&hits=1000
现在它从1000多种产品中获取了所有信息,但我不能过去,因为脚本只是不想工作,我没有得到任何错误。 顺便说一句,我只是把所售的东西拿出去,所以它的数据并不多。
我想要一种方法来浏览孔页,而不必将限制写入我想要通过的产品数量。
答案 0 :(得分: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报废。