使用python和selenium来抓取动态网页

时间:2011-12-28 01:39:00

标签: python selenium

在网站上,顶部有几个链接标有 1 2 3 next < / KBD>。如果按下标有数字的链接,则会将某些数据动态加载到内容div中。如果按下 next ,它将转到标签 4 5 6 的页面并显示第4页的数据。

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

请举例说明如何操作。例如,请考虑网站www.cnet.com。

请指导我使用硒下载系列页面并解析它们以便自己处理美味的汤。

1 个答案:

答案 0 :(得分:10)

总体布局(未经测试):

#!/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")