Python3實現(xiàn)抓取javascript動態(tài)生成的html網頁功能示例
本文實例講述了Python3實現(xiàn)抓取javascript動態(tài)生成的html網頁功能。分享給大家供大家參考,具體如下:
用urllib等抓取網頁,只能讀取網頁的靜態(tài)源文件,而抓不到由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 Socket編程技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python深度學習實戰(zhàn)PyQt5窗口切換的堆疊布局示例詳解
本文以堆疊窗口控件為例,詳細介紹堆疊布局的界面設計和程序實現(xiàn)過程,通過案例帶小白創(chuàng)建一個典型的堆疊布局多窗口切換程序2021-10-10
使用jupyter?notebook保存python代碼為.py格式問題
這篇文章主要介紹了使用jupyter?notebook保存python代碼為.py格式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
解決pandas無法在pycharm中使用plot()方法顯示圖像的問題
今天小編就為大家分享一篇解決pandas無法在pycharm中使用plot()方法顯示圖像的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python通過paramiko復制遠程文件及文件目錄到本地
這篇文章主要為大家詳細介紹了python通過paramiko復制遠程文件及文件目錄到本地,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04

