Python3实现抓取javascript动态生成的html网页功能示例


Posted in Python onAugust 22, 2017

本文实例讲述了Python3实现抓取javascript动态生成的html网页功能。分享给大家供大家参考,具体如下:

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

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

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

这里要介绍一个python库:selenium,本文使用的版本是 2.44.0

先安装:

pip install -U selenium

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

【例0】

打开一个Firefox浏览器
载入所给url地址的页面

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')

【例1】

打开一个Firefox浏览器
载入百度主页
搜索 “seleniumhq”
关闭浏览器

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get('http://www.baidu.com')
assert '百度' in browser.title
elem = browser.find_element_by_name('p') # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键
browser.quit()

【例2】

Selenium WebDriver 常用于网络程序的测试。 下面是一个使用Python标准库 unittest 的例子:

import unittest
class BaiduTestCase(unittest.TestCase):
  def setUp(self):
    self.browser = webdriver.Firefox()
    self.addCleanup(self.browser.quit)
  def testPageTitle(self):
    self.browser.get('http://www.baidu.com')
    self.assertIn('百度', self.browser.title)
if __name__ == '__main__':
  unittest.main(verbosity=2)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
Python实现的快速排序算法详解
Aug 01 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
让代码变得更易维护的7个Python库
Oct 09 Python
Python 获取div标签中的文字实例
Dec 20 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Flask配置Cors跨域的实现
Jul 12 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
python numpy中cumsum的用法详解
Oct 17 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 #Python
Python实现的矩阵类实例
Aug 22 #Python
Python实现图片转字符画的示例
Aug 22 #Python
利用aardio给python编写图形界面
Aug 21 #Python
Python实现图片转字符画的示例代码
Aug 21 #Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 #Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 #Python
You might like
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
常用简易JavaScript函数
2009/04/09 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
使用Python脚本操作MongoDB的教程
2015/04/16 Python
详解Python中的日志模块logging
2015/06/19 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
详解python中asyncio模块
2018/03/03 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python for和else语句趣谈
2019/07/02 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python列表切片常用操作实例解析
2020/03/10 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
简单租房协议书
2014/04/09 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
培训心得体会怎么写
2016/01/25 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫