js抓取网页内容(Python3实现抓取javascript动态生成的html网页功能示例的相关内容吗)
优采云 发布时间: 2022-01-03 21:21js抓取网页内容(Python3实现抓取javascript动态生成的html网页功能示例的相关内容吗)
想了解Python3实现抓取javascript动态生成的html网页的相关内容吗?在本文中,罗兵将仔细讲解Python3抓取javascript动态生成的html网页的相关知识和一些代码示例。欢迎阅读并指正,先关注:Python3、爬虫、javascript、动态生成、html网页,一起学习。
本文以Python3为例,实现抓取javascript动态生成的html网页的功能。分享给大家,供大家参考,如下:
使用urllib等抓取网页只能读取网页的静态源文件,不能读取javascript生成的内容。
原因是urllib是瞬间抓取的。它不等待javascript加载延迟,因此页面中javascript生成的内容无法被urllib读取。
真的没有办法读取javascript生成的内容吗?不!
这里是一个python库:selenium,本文使用的版本是2.44.0
先安装:
pip install -U selenium
以下三个例子说明了它的用法:
[示例 0]
打开火狐浏览器
使用给定的 url 地址加载页面
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')
[示例 1]
打开火狐浏览器
加载百度主页
搜索“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 编程有所帮助。
相关文章