標籤:break int 清理 director testcase ram source pager test
動態網頁面類比點擊
#!/usr/bin/env python# -*- coding:utf-8 -*-# python的測試模組import unittestfrom selenium import webdriverfrom bs4 import BeautifulSoupclass douyuSelenium(unittest.TestCase): # 初始化方法 def setUp(self): self.driver = webdriver.PhantomJS() #具體的測試案例方法,一定要以test開頭 def testDouyu(self): self.driver.get(‘http://www.douyu.com/directory/all‘) while True: # 指定xml解析 soup = BeautifulSoup(driver.page_source, ‘xml‘) # 返回當前頁面所有房間標題列表 和 觀眾人數列表 titles = soup.find_all(‘h3‘, {‘class‘: ‘ellipsis‘}) nums = soup.find_all(‘span‘, {‘class‘: ‘dy-num fr‘}) # 使用zip()函數來可以把列表合并,並建立一個元組對的列表[(1,2), (3,4)] for title, num in zip(nums, titles): print u"觀眾人數:" + num.get_text().strip(), u"\t房間標題: " + title.get_text().strip() # page_source.find()未找到內容則返回-1 if driver.page_source.find(‘shark-pager-disable-next‘) != -1: break # 類比下一頁點擊 self.driver.find_element_by_class_name(‘shark-pager-next‘).click() # 退出時的清理方法 def tearDown(self): print ‘載入完成...‘ self.driver.quit()if __name__ == "__main__": unittest.main()
爬蟲之動態HTML處理(Selenium與PhantomJS )動態網頁面類比點擊