Python網路資料採集之審查元素
普通的網路資料可使用get或post方法來採集得到,而有些網站原始碼只能通過審查元素的方式才可以看到,本文介紹如何使用Python程式碼實現審查元素的網路資料採集方法。
使用Python實現通過審查元素採集資料需要用到selenium庫,具體實現步驟如下:
-
官網下載selenium並安裝,編寫Python測試指令碼。
from selenium import webdriver browser = webdriver.Firefox(); browser.get("http://www.baidu.com");
-
執行指令碼報以下錯誤:
WebDriverException: Message: ‘geckodriver‘ executable needs to be in PATH.
是因為 selenium 3.x開始,webdriver/firefox/webdriver.py的init中,executable_path="geckodriver";並且firefox 47以上版本,需要下載第三方driver,即geckodriver。
下載對應版本的瀏覽器驅動geckodriver,解壓後將geckodriver.exe放置到firefox安裝目錄,並將該目錄寫入“環境變數-系統變數-Path”中。
-
再次執行指令碼可能會報以下錯誤:
WebDriverException: Message: Unable to find a matching set of capabilities
首先,檢查本機java版本,selenium3.x只支援java8版本以上;其次,檢查firefox瀏覽器版本,將firefox47解除安裝,安裝最新版本的firefox版本57。兩者無誤後,即可成功,親測有效。
-
執行指令碼無報錯後,可寫採集網路資料的程式碼,如下所示。
# -*- coding:utf-8 -*- from bs4 import BeautifulSoup from selenium import webdriver import re,requests,sys,json,random,time import os chromedriver = "D:\Program Files\Mozilla Firefox\geckodriver" driver = webdriver.Firefox(executable_path = chromedriver) totelPage = 200 page = 1 head = 'http://apps.webofknowledge.com' f = open('WOS_file.csv','w') while page <= totelPage: print "Page %i ..." % ( page ) url = 'http://apps.webofknowledge.com/summary.do?product=WOS&parentProduct=WOS&search_mode=GeneralSearch&parentQid=&qid=1&SID=U2NEeEDm3nTK7peYwWt&&update_back2search_link_param=yes&page=' + str(page) driver.get(url) try: sourcePage = driver.page_source soup = BeautifulSoup(sourcePage,"html.parser") urls = soup.find_all("a", class_="smallV110", href=re.compile("full_record.do"),attrs={"tabindex":"0"}) print(len(urls)) for r_url in urls: list_url = head + str(r_url.attrs['href']) f.writelines(list_url + '\n') finally: pass time.sleep(random.randint(5,10)/10.0) page += 1 driver.quit() print "done..." f.close()
本例中主要使用了兩個用於採集的第三方庫webdriver和BeautifulSoup。其中,driver.page_source用於獲取審查元素的網頁原始碼;BeautifulSoup(sourcePage,"html.parser")將網頁原始碼梳理成網格;BeautifulSoup中的find_all方法用於查詢匹配資訊。這也是網路資料採集常用庫和方法,兩個庫的API可參考官方手冊或相關博文,在此不贅述。
相關文章
- Python網路資料採集(爬蟲)Python爬蟲
- 《Python網路資料採集》筆記一Python筆記
- Python爬蟲初學二(網路資料採集)Python爬蟲
- O'Reilly精品圖書推薦:Python網路資料採集Python
- Python網路爬蟲資料採集實戰:Requests和Re庫Python爬蟲
- 新版《網路安全審查辦法》施行,資料安全納入審查範圍
- python網路資料採集 - 讀書筆記 - 糾錯與記錄Python筆記
- phpQuery採集網站資料PHP網站
- 網頁資料採集器網頁
- 網路分流器|網路分流器大資料採集方案大資料
- 網路分流器-移動信令採集裝置-大資料採集方案大資料
- 大資料_資料採集_網頁01大資料網頁
- 大資料技術之資料採集篇大資料
- 中國的網際網路審查
- .NET Core 網路資料採集 -- 使用AngleSharp做html解析HTML
- 新手使用python採集資料的尷尬事之代理ipPython
- 定製化大規模網路資料採集企業級資料採集一站式解決方案
- 中國新成立”網路安全審查委員會”審查些什麼?
- 網路分流器-網路匯聚分流器-移動網際網路採集器採集方案
- python爬蟲 之 scrapy框架採集2000期彩票資料Python爬蟲框架
- Python資料科學(五) 資料處理和資料採集Python資料科學
- 資料結構之並查集資料結構並查集
- 我國將成立網路安全審查委員會:並非所有網路產品都需審查
- 網路分流器|3G/LTE業務採集方面|移動網際網路採集器
- AWR資料採集方法
- Oracle AWR資料採集Oracle
- 3個免費資料採集工具網站網站
- 網路分流器|移動網際網路採集器|100G LTE核心網採集裝置
- AHT20資料採集原理電路設計
- 資料採集知識分享|4大資料採集方式都有什麼?大資料
- 資料採集之:巧用布隆過濾器提取資料摘要過濾器
- Oracle資料庫網路與安全之FAQ彙集(轉)Oracle資料庫
- 大資料採集之後,怎麼分析才好呢?大資料
- Restcloud ETL實踐之Excel檔案資料採集RESTCloudExcel
- 英國開始在美國大選之後審查其網路安全
- iNeuOS工業網際網路作業系統,高效採集資料配置與應用作業系統
- 網站如何判斷爬蟲在採集資料?網站爬蟲
- Python進行資料採集時,如何避免IP被封?Python