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網路爬蟲資料採集實戰:Requests和Re庫Python爬蟲
- 新版《網路安全審查辦法》施行,資料安全納入審查範圍
- python網路資料採集 - 讀書筆記 - 糾錯與記錄Python筆記
- 網路分流器|網路分流器大資料採集方案大資料
- phpQuery採集網站資料PHP網站
- 網路分流器-移動信令採集裝置-大資料採集方案大資料
- python爬蟲 之 scrapy框架採集2000期彩票資料Python爬蟲框架
- .NET Core 網路資料採集 -- 使用AngleSharp做html解析HTML
- 大資料技術之資料採集篇大資料
- 新手使用python採集資料的尷尬事之代理ipPython
- 定製化大規模網路資料採集企業級資料採集一站式解決方案
- 網路分流器-網路匯聚分流器-移動網際網路採集器採集方案
- 資料結構之並查集資料結構並查集
- 【Python資料採集】國家自然科學基金大資料知識管理服務門戶資料採集Python大資料
- 網路分流器|移動網際網路採集器|100G LTE核心網採集裝置
- 網路分流器|3G/LTE業務採集方面|移動網際網路採集器
- 中國新成立”網路安全審查委員會”審查些什麼?
- AHT20資料採集原理電路設計
- 資料採集之:巧用布隆過濾器提取資料摘要過濾器
- Python進行資料採集時,如何避免IP被封?Python
- Python爬蟲實戰系列4:天眼查公司工商資訊採集Python爬蟲
- 資料採集知識分享|4大資料採集方式都有什麼?大資料
- 從《網路安全審查辦法》三版對比看“審查啟示”
- Restcloud ETL實踐之Excel檔案資料採集RESTCloudExcel
- 大資料採集之後,怎麼分析才好呢?大資料
- iNeuOS工業網際網路作業系統,高效採集資料配置與應用作業系統
- 網站如何判斷爬蟲在採集資料?網站爬蟲
- 工商資訊資料採集思路
- Python對系統資料進行採集監控——psutilPython
- 資料採集作業四
- 資料採集作業4
- 資料採集實驗四
- 資料採集作業3
- 資料採集作業2
- 資料採集作業二
- amazon產品採集資料
- 小豬的Python學習之旅 —— 16.再嘗Python資料分析:採集拉勾網資料分析Android就業行情PythonAndroid就業
- Web3.0時代,挖掘資料價值的第一步是網路資料採集Web