Python3抓取javascript生成的html网页

用urllib等抓取网页,只能读取网页的静态源文件,而抓不到由javascript生成的内容。

究其原因,是因为urllib是瞬时抓取,它不会等javascript的加载延迟,所以页面中由javascript生成的内容,urllib读取不到。

 

那由javascript生成的内容就真的没有办法读取了吗?非也!

本文要介绍一个python库:selenium,目前最新版本是 2.44.0

 

先安装:

pip install -U selenium

 

下面用三个例子来说明其用法:

【例0】

  • 打开一个Firefox浏览器
  • 载入所给url地址的页面
1 from selenium import webdriver
2 
3 browser = webdriver.Firefox()
4 browser.get('http://www.baidu.com/')

 

【例1】

  • 打开一个Firefox浏览器
  • 载入百度主页
  • 搜索 “seleniumhq”
  • 关闭浏览器
 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)

 

转载于:https://www.cnblogs.com/hhh5460/p/4286983.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值