在网站上,顶部有几个链接标有 1 , 2 , 3 和 next < / KBD>。如果按下标有数字的链接,则会将某些数据动态加载到内容div
中。如果按下 next ,它将转到标签 4 , 5 , 6 ,的页面并显示第4页的数据。
我想从内容div
中抓取所有按下的链接的数据(我不知道有多少,一次只显示3个, next )< / p>
请举例说明如何操作。例如,请考虑网站www.cnet.com。
请指导我使用硒下载系列页面并解析它们以便自己处理美味的汤。
答案 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")