【问题标题】:how to scrape websites with infinite scrolling with load more button using python and selenium如何使用python和selenium通过加载更多按钮来抓取无限滚动的网站
【发布时间】:2019-01-20 08:18:21
【问题描述】:

我想抓取 facebook 的 mbasic.facebook.com 界面。它具有加载更多按钮以向下滚动到新帖子。我一直在对 facebook 的常规界面抓取进行大量研究,发现了这个 Scraping infinite scrolling website with Selenium in Python

import unittest, time, re

class Sel(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.verificationErrors = []
        self.accept_next_alert = True
    def test_sel(self):
        driver = self.driver
        delay = 3
        driver.get("https://www.facebook.com")
        elem = driver.find_element_by_name("email")
        elem.clear()
        elem.send_keys("")

        elem2 = driver.find_element_by_name("pass")
        elem2.clear()
        elem2.send_keys("")
        elem2.send_keys(Keys.RETURN)
        for i in range(1,100):
            self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
            time.sleep(4)
        html_source = driver.page_source
        data = html_source.encode('utf-8')
        print(data)


if __name__ == "__main__":
    unittest.main()

但我不想做一个循环,而是想触发一个事件,比如,如果用户手动按下加载更多帖子按钮,新页面被加载,我得到页面的页面源。有没有办法做到这一点?任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试过更大的窗口尺寸? stackoverflow.com/questions/23381324/…
  • 我怎么知道我想要的尺寸?同样,这将是硬编码,就像我在循环中所做的那样。有没有办法手动按下加载更多按钮,然后加载更多帖子?

标签: python selenium web-scraping infinite-scroll event-listener


【解决方案1】:

那么您是否每次加载更多帖子时都尝试获取页面源?因为该代码没有反映这一点。假设每次加载新帖子列表时都需要源代码,您可以使用 XPath 找到并单击“更多帖子”按钮。

for i in range(1, 10):
    driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
    driver.find_element_by_xpath('//span[contains(., "More")]/..').click()
    html_source = driver.page_source
    data = html_source.encode('utf-8')
    print(data)
    sleep(4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 2013-11-11
    • 2015-05-06
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    相关资源
    最近更新 更多