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实现的简单RPG游戏流程实例
Jun 28 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
Python实现修改IE注册表功能示例
May 10 Python
numpy中loadtxt 的用法详解
Aug 03 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
Django-imagekit的使用详解
Jul 06 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
如何用python识别滑块验证码中的缺口
Apr 01 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php 定义404页面的实现代码
2012/11/19 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php常用数学函数汇总
2014/11/21 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python3.6的venv模块使用详解
2018/08/01 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
校长岗位职责
2013/11/26 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
代理商会议邀请函
2014/01/27 职场文书
一年级数学教学反思
2014/02/01 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript