一尘不染

使用python和selenium抓取动态网页

selenium

在网站上,有在标顶部的几个环节123,和next。如果按下以数字标记的链接,它将动态地将一些数据加载到content中div。如果next被按下,它会用标签页456next和第4页中的数据显示。

我想从div按下的所有链接的内容中抓取数据(我不知道有多少,一次只显示3个,然后next

请举一个例子。例如,考虑网站www.cnet.com

请指导我下载使用selenium的一系列页面,并自行解析它们以处理漂亮的汤。


阅读 265

收藏
2020-06-26

共1个答案

一尘不染

总体布局(未经测试):

#!/usr/bin/env python
from contextlib import closing
from selenium.webdriver import Firefox # pip install selenium

url = "http://example.com"

# use firefox to get page with javascript generated content
with closing(Firefox()) as browser:
    n = 1
    while n < 10:
        browser.get(url) # load page
        link = browser.find_element_by_link_text(str(n))
        while link:
           browser.get(link.get_attribute("href")) # get individual 1,2,3,4 pages
           #### save(browser.page_source)
           browser.back() # return to page that has 1,2,3,next -like links
           n += 1
           link = browser.find_element_by_link_text(str(n))

        link = browser.find_element_by_link_text("next")
        if not link: break
        url = link.get_attribute("href")
2020-06-26