本文共 1192 字,大约阅读时间需要 3 分钟。
用urllib等抓取网页,只能读取网页的静态源文件,而抓不到由javascript生成的内容。
究其原因,是因为urllib是瞬时抓取,它不会等javascript的加载延迟,所以页面中由javascript生成的内容,urllib读取不到。
那由javascript生成的内容就真的没有办法读取了吗?非也!
本文要介绍一个python库:selenium,目前最新版本是 2.44.0
先安装:
pip install -U selenium
下面用三个例子来说明其用法:
【例0】
1 from selenium import webdriver2 3 browser = webdriver.Firefox()4 browser.get('http://www.baidu.com/')
【例1】
1 from selenium import webdriver 2 from selenium.webdriver.common.keys import Keys 3 4 browser = webdriver.Firefox() 5 6 browser.get('http://www.baidu.com') 7 assert '百度' in browser.title 8 9 elem = browser.find_element_by_name('p') # Find the search box10 elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键11 12 browser.quit()
【例2】
Selenium WebDriver 常用于网络程序的测试。 下面是一个使用Python标准库 的例子:
1 import unittest 2 3 class BaiduTestCase(unittest.TestCase): 4 5 def setUp(self): 6 self.browser = webdriver.Firefox() 7 self.addCleanup(self.browser.quit) 8 9 def testPageTitle(self):10 self.browser.get('http://www.baidu.com')11 self.assertIn('百度', self.browser.title)12 13 if __name__ == '__main__':14 unittest.main(verbosity=2)
转载地址:http://gtjoo.baihongyu.com/