Web抓蟒蛇|有限的对象

时间:2017-12-20 20:46:51

标签: python web web-scraping

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

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

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

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

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

1 个答案:

答案 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报废。

顺便说一下,我刚刚做了一个PC抓取项目,here's the link如果你想查看它。