python抓取动态网页(本文实例讲述Python3实现抓取javascript动态生成的html网页功能)
优采云 发布时间: 2022-02-01 14:13python抓取动态网页(本文实例讲述Python3实现抓取javascript动态生成的html网页功能)
本文的例子描述了Python3爬取javascript动态生成的HTML页面的功能。分享给大家,供大家参考,如下:
用urllib等爬取网页只能读取网页的静态源文件,不能读取javascript生成的内容。
原因是因为urllib是瞬时爬取的,不会等待javascript的加载延迟,所以页面中javascript生成的内容无法被urllib读取。
真的没有办法读取javascript生成的内容吗?也不是!
这里介绍一个python库:selenium,本文使用的版本是2.44.0
先安装:
<br />pip install -U selenium
以下三个例子说明了它的用法:
【示例0】
打开火狐浏览器
在给定的url地址加载页面
<br />from selenium import webdriver<br />browser = webdriver.Firefox()<br />browser.get('http://www.baidu.com/')
【示例一】
打开火狐浏览器
加载百度主页
搜索“seleniumhq”
关闭浏览器
<br />from selenium import webdriver<br />from selenium.webdriver.common.keys import Keys<br />browser = webdriver.Firefox()<br />browser.get('http://www.baidu.com')<br />assert '百度' in browser.title<br />elem = browser.find_element_by_name('p') # Find the search box<br />elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键<br />browser.quit()
【示例2】
Selenium WebDriver 通常用于测试网络程序。下面是一个使用 Python 标准库 unittest 的示例:
<br />import unittest<br />class BaiduTestCase(unittest.TestCase):<br /> def setUp(self):<br /> self.browser = webdriver.Firefox()<br /> self.addCleanup(self.browser.quit)<br /> def testPageTitle(self):<br /> self.browser.get('http://www.baidu.com')<br /> self.assertIn('百度', self.browser.title)<br />if __name__ == '__main__':<br /> unittest.main(verbosity=2)
对更多Python相关内容感兴趣的读者可以查看本站专题:《Python进程和线程操作技巧总结》、《Python套接字编程技巧总结》、《Python数据结构与算法教程》、 《Python函数使用》技巧总结》、《Python字符串操作技巧总结》、《Python入门与进阶经典教程》和《Python文件和目录操作技巧总结》
希望这篇文章对你的 Python 编程有所帮助。
你可能感兴趣文章:python+jinja2实现接口数据批量生成工具Python的Flask框架自带模板引擎Jinja2 Python的Tornado框架教程配置Jinja2模板引擎的使用方法Python的Flask Jinja2模板引擎学习教程框架中python使用pyh生成html文档方法示例python解析html提取数据,生成word文档实例解析python使用HTMLTestRunner.py生成测试报告使用CasperJS在python中获取js渲染生成的html内容教程python使用jinja2模板生成html代码示例