python爬蟲文獻綜述_基于Python下的爬蟲綜述及應用

98 Internet Application 互聯網 + 應用 引言:如今,大數據已經進入我們的各個領域,我們的工作及應用越來越需要獲取大量的數據。我們可以想象在一張蜘蛛網上沿著我們所需的方向爬取獵物(數據)的感覺。實際上爬蟲就是通過人為的模擬瀏覽器行為,獲取站點的HTML 代碼、JSON 數據以及其它相關內容到本地,保存以便日后自己使用。一、爬蟲技術 1、爬蟲簡介。爬蟲,應該稱為網絡爬蟲,也叫網頁蜘蛛、網絡機器人、網絡螞蟻等。其實,搜索引擎,就是網絡爬蟲的應用者。但搜索引擎不能對所需網站及特定數據進行獲取,因此,需要自己開發爬蟲來解決問題。 2、爬蟲分類。當前主要爬蟲從大體上可分為聚焦爬蟲和通用爬蟲。通用爬蟲常見的就是搜索引擎,無差別的收集數據、存儲,提取關鍵字,構建索引庫,給用戶提供搜索接口。聚焦爬蟲是指有針對性的編寫特定領域數據的爬取程序,針對某些類別數據采集的爬蟲,是面向主題的爬蟲。 3、爬蟲架構。爬蟲架構分為 3 部分:(1)URL 資源管理器:存放已爬和未爬的 URL。(2)網頁下載器:字符串格式的網頁保存方式。(3)網頁解釋器:進行數據解析。 4、爬蟲的一般流程:(1)初始一批 URL,將 URL 放在待爬取隊列。(2)取出 URL,通過 DNS 解析 IP,對 IP 對應站點下載 HTML 頁面,保存本地服務器,爬取完成后放 入已爬取隊列。(3)分析網頁,找出里面URL鏈接,重復(2)。 二、基礎 Python 爬蟲的分析 2.1Python 語言的優勢 (1)簡單方便上手,兼容性強,可在所有操作系統上運行,初學者能很好適應。(2)Python 其自身所帶了很多例如urllib3等很方便爬蟲的庫,以及其完整的爬蟲框架 Scrapy,使用者很方便上手。 2.2 Python 網絡爬蟲模塊 1. urllib 包。Urllib 是標準庫,它是一個工具包模塊,包含以下模塊來處理 URL:(1)urllib.request:用于打開和讀寫 URL;(2)urllib.error 包含了由 urllib.request 引起的異常; (3)urllib.parse 用于解析 URL;(4)urllib.robotparser 分析 基于 Python 下的爬蟲綜述及應用 □張譽曜 陳媛媛(通訊作者) 新疆師范大學計算機科學技術學院 【摘要】 本文對 Python 全棧爬蟲技術進行闡述,包含了爬蟲概念、流程和架構,并通過詳細的代碼展示體現出來,緊接著通過實例展現了 Python 爬蟲的簡潔性,望對學習者有所幫助。 【關鍵詞】 Python 全棧爬蟲 爬蟲概念 應用 2017 年度新疆師范大學計算機科學學院數據安全重點實驗室招標課題“網絡空間命運共同體視域下我國智庫網絡影響力提升路徑研究”,課題編號 : XJNUSYS102017B07。 通訊作者 : 陳媛媛 ( 1977— ) ,新疆師范大學計算機學院副研究館員 robots.txt 文件。在 Python2 中提供了 urllib 和 urllib2,其中urllib 提供的是底層的接口,urllib2 對 urllib 進行了進一步的封裝。但在 Python3 中將 urllib 合并到了 urllib2 中,并只提供了標準庫 urllib 包。 2. request.urlopen 方法。通過 urllib.request.urlopen 方法,發起了一個 HTTP 的 GET 請求,WEB 服務器返回了網頁內容。響應的數據被封裝到類文件對象中,可以通過read方法、 readlin

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HelloWorld新手常見問題

1.顯示錯誤: HelloWorld.java:1: 錯誤: 寫入HelloWorld時出錯: C:\HelloWorld.class public class HelloWorld { ^ 1 個錯誤 解決方法: 將文件轉移至D盤,然后編譯即可。不要放在C盤! 2.顯示錯誤: 錯誤: 找不…

淺談HTTPS以及Fiddler抓取HTTPS協議

原文 淺談HTTPS以及Fiddler抓取HTTPS協議 最近想嘗試基于Fiddler的錄制功能做一些接口的獲取和處理工作,碰到的一個問題就是簡單連接Fiddler只能抓取HTTP協議,關鍵的登錄請求等HTTPS協議都沒有捕捉到,所以想讓Fiddler能夠同時抓取到HTTPS和HT…

關于.c和.h 和定義變量的問題

最初調試的時候是因為有個錯誤在wavplay.h文件中 于是我跳到了recorderl.h中:從圖中看到引用了main.h 出現這個問題的具體原因還是不太清楚: 不過我任務是因為: wavplay.h中定義了 __WaveHeader 變量 在main.h文件中引用了wavplay.h 而在wavplay.h中試圖引用main.h里的 __Wa…

halcon中面到面的距離_halcon學習筆記——(8)由標定板得到測量平面位姿-阿里云開發者社區...

如圖:由標定板位姿獲取測量板位姿1.pose_to_hom_mat3d( : : Pose : HomMat3D)把三維位姿轉化為齊次變換矩陣2.hom_mat3d_translate_local( : : HomMat3D, Tx, Ty, Tz : HomMat3DTranslate)相對于新坐標系的平移變換/ 1 0 0 \ / Tx \HomMat3DTranslate HomMat3D *…

進程同步與互斥的區別

并發進程的執行會產生相互制約的關系:一種是進程之間競爭使用臨界資源,只能讓他們逐個使用,這種現象稱為互斥,是一種競爭關系。另一種是進程之間協同完成任務,在關鍵點上等待另一進程發來的消息,以便協同一…

《軟件調試分析技術》學習筆記

《軟件調試分析技術》學習筆記(一) 今天開始寫寫一些心得體驗。 《軟件調試分析技術》是好友Monster的處女作品。作為一直以的好伙伴,他是我看著長大的,(*^__^*) 嘻嘻……之所以有今天這樣的成績,是與他的努力和天賦…

new Date()時間

var myDate new Date(); myDate.toLocaleDateString();可以獲取當前日期myDate.toLocaleTimeString(); 可以獲取當前時間擴展:myDate.getYear(); //獲取當前年份(2位)myDate.getFullYear(); //獲取完整的年份(4位,1970-????)myDate.getMonth(); //獲…

什么是對等網絡

對等網也稱工作組。在對等網絡中,計算機的數量通常不會超過10臺。所以對等網絡相對比較簡單。在對等網絡中,對等網上各臺計算機的有相同的功能,無主從之分,網上任一節臺計算機既可以作為網絡服務器,其資源為其它計算機…

python初中必背語法_一些python語法的合集

貼幾道自己做過的py題防止忘了,好像包含的語法還挺多的洛谷1018nn,mminput().split( )oint(input())nint(nn);mint(mm)a[[]];c[[]]for i in range (1,43):a.append([]);c.append([])for i in range (1,43):for j in range (1,43):a[i].append(0),c[i].append(0)b[]f…

微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"} 聲明:是已認證的服務號 這個問題已解決!! 前置說明 網頁授權獲取用戶基本信息:兩種 scope 域 https://open.w…

解決ubuntu首次安裝Mysql之后,首次登錄出現ERROR 1698 (28000): Access denied for user 'root'@'localhost'的方法

解決步驟: 1.打開終端,輸入sudo vi /etc/mysql/debian.cnf 打開/etc/mysql/debian.cnf文件,顯示如下: 2.mysql -udebian-sys-maint -p 打開mysql 輸入密碼為上圖中password字段 3.修改root密碼 ALTER USER rootlocalhost IDEN…

六十萬的成長_我的EA策略分析和實現

曾經看過一個故事:在流水線上需要檢測面包盒子是不是空的,科技人員使用各種紅外線等等高科技,達到了目的;有一個工人用一臺風扇就解決了這個問題......其實解決問題可以很簡單,只要能實現目標,過程越簡單越…

流量控制和擁塞控制

流量控制是用于控制調制解調器與計算機之間的數據流,具有防止因為計算機和調制解調器之間通信處理速度的不匹配而引起的數據丟失。通常有硬件流量控制(RTS/CTS)和軟件流量(XON/XOFF)控制。 擁塞現象是指到達通…

內聚的極限: 軟件開發的不確定性原理

高內聚是有極限的. 當代碼在一個維度上高度內聚的時候, 在其它維度上是發散的. -- 代碼內聚設計的不確定性原理 大家都知道量子力學的不確定性原理: 在微觀世界里, 有幾對物理量不能同時精確的測定, 包括速度與位置, 以及能量與時間. 比如當我們精確的測定一個粒子的速度使其誤…

python獲取window共享目錄列表_利用Python獲取DICOM RTstructure勾畫列表

在《利用Python打開DICOM CT文件》一文中,我們利用pydicom.dcmread()讀取了CT圖像。本文中我們將修改load_scan()函數來讀取RTstructure文件并獲取勾畫列表1. 打開Jupyter notebook,導入需要的科學包import numpy as npimport mathimport pydicomimport …

sublime 自定義快捷鍵

[{ "keys": ["altspace"], "command": "auto_complete" }, // 自動提示、補全{ "keys": ["ctrlalti"], "command": "reindent" }, //整理代碼快捷鍵{ "keys": ["f12"…

Ubuntu中安裝、生成、導入、導出、Python3虛擬環境

1.安裝Ubuntu虛擬環境、以及可以支持虛擬環境的模塊 sudo apt install virtualenv sudo apt install virtualenvwrapper 安裝完成之后,進入home目錄,輸入命令ls -al查看是否出現.virtualenvs目錄,如果沒有則手動創建.virtualenvs目錄 重要…

Coursera課程 Programming Languages, Part C 總結

碎言碎語 和前面的 ML 和 Racket 感覺明顯不一樣了,一邊學著一邊覺得這真是一門奇怪的語言,有著各種奇怪的語法,不過真的算是一個奇妙的體驗(相比前面的兩門語言,Ruby 的學習資源多了不少)。week 1 的作業直…

如何判斷網絡是否進入擁塞狀態

通過觀察網絡的吞吐量與網絡負載間的關系 如果隨著網絡負載的增加,網絡的吞吐量明顯小于正常的吞吐量,那么網絡就進入例如輕度擁塞的狀況。 如果網絡得吞吐量隨著網絡負載的增大反而下降,那么網絡就可能進入擁塞狀態。 如果網絡的負載繼續…

如何拷貝工程_如何將premiere的工程及素材文件打包?

我們在剪輯視頻的時候經常會遇到素材丟失的情況,或者說需要換地方或換電腦繼續剪輯。特別是以前做的視頻現在需要修改一些地方,然后打開工程文件會發現素材丟失,如圖:這種情況要不就是素材已經刪除,要不就是素材改變了…