抓取网页生成电子书(Python标准库unittest办法读取了吗?非也!(图) )
优采云 发布时间: 2022-02-17 23:10抓取网页生成电子书(Python标准库unittest办法读取了吗?非也!(图)
)
使用urllib等爬取网页只能读取网页的静态源文件,不能读取javascript生成的内容。
原因是因为urllib是瞬时爬取的,不会等待javascript的加载延迟,所以页面中javascript生成的内容无法被urllib读取。
真的没有办法读取javascript生成的内容吗?也不是!
本文将介绍一个python库:selenium,最新版本为2.44.0
先安装:
pip install -U selenium
以下三个例子说明了它的用法:
【示例0】
1 from selenium import webdriver
2
3 browser = webdriver.Firefox()
4 browser.get('http://www.baidu.com/')
【示例一】
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 box
10 elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键
11
12 browser.quit()
【示例2】
Selenium WebDriver 通常用于测试网络程序。下面是一个使用 Python 标准库 unittest 的示例:
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)