999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Python爬蟲技術的網頁數據抓取與分析

2019-09-12 06:20:32吳永聰
計算機時代 2019年8期

吳永聰

摘? 要: 近年來,隨著互聯網的發展,如何有效地從互聯網獲取所需信息已成為眾多互聯網企業競爭研究的新方向,而從互聯網上獲取數據最常用的手段是網絡爬蟲。網絡爬蟲又稱網絡蜘蛛和網絡機器人,它是一個程序,可以根據特定的規則和給定的URL自動收集互聯網數據和信息。文章討論了網絡爬蟲實現過程中的主要問題:如何使用python模擬登錄、如何使用正則表達式匹配字符串獲取信息、如何使用mysql存儲數據等,并利用python實現了一個網絡爬蟲程序系統。

關鍵詞: 網絡爬蟲; Python; MySQL; 正則表達式

中圖分類號:TP311.11? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)08-94-03

Abstract: In recent years, with the development of the Internet, how to effectively obtain the required information from the Internet has become a new direction that many Internet companies are competing to research, and the most common means of obtaining data from the Internet is the web crawler. Web crawlers are also known as web spiders or web robots, it is a program that automatically collects Internet data and information according to a given URL and a specific rule. In this paper, the main issues in the implementation of web crawlers are discussed, such as how to use Python to simulate login, how to use regular expressions to match strings to get information and how to use MySQL to store data, and so on. At the end, a Python-based web crawler program system is realized through the research of Python language.

Key words: web crawler; Python; MySQL; regular expression

0 引言

在網絡信息和數據爆炸性增長的時代,盡管互聯網信息技術的飛速發展,從如此龐大的信息數據中仍然很難找到真正有用的信息。于是,谷歌、百度、雅虎等搜索引擎應運而生。搜索引擎可以根據用戶輸入的關鍵字在Internet上檢索網頁,并為用戶查找與關鍵字相關或包含關鍵字的信息。網絡爬蟲作為搜索引擎的重要組成部分,在信息檢索過程中發揮著重要的作用。因此,網絡爬蟲的研究,對于搜索引擎的發展具有十分重要的意義。對于編寫網絡爬蟲,python有其獨特的優勢。例如,python中有許多爬蟲框架,這使得web爬蟲更高效地對數據進行爬行。同時,Python是一種面向對象的解釋性高級編程語言。它的語法比其他高級編程語言更簡單、更易閱讀和理解。因此,使用Python來實現Web爬蟲是一個很好的選擇。

1 網絡爬蟲的概述

1.1 網絡爬蟲的原理

網絡爬蟲,又稱網絡蜘蛛和網絡機器人,主要用于收集互聯網上的各種資源。它是搜索引擎的重要組成部分,是一個可以自動提取互聯網上特定頁面內容的程序。通用搜索引擎Web爬蟲工作流[1]:①將種子URL放入等待抓取URL隊列;②將等待URL從等待URL隊列中取出,進行讀取URL、DNS解析、網頁下載等操作;③將下載的網頁放入下載的網頁庫;④將下載的網頁URL放入已爬URL隊列;⑤分析已爬URL隊列中的URL提取新的URL被放置在要等待抓取URL隊列中,并進入下一個爬網周期。

爬蟲的工作流程:①通過URL抓取頁面代碼;②通過正則匹配獲取頁面有用數據或者頁面上有用的URL;③處理獲取到的數據或者通過獲取到的新的URL進入下一輪抓取循環。

1.2 網絡爬蟲的分類

網絡爬蟲大體上可以分為通用網絡爬蟲,聚焦網絡爬蟲[2]。

通用網絡爬蟲,也叫全網爬蟲,它從一個或者多個初始URL開始,獲取初始頁面的代碼,同時從該頁面提取相關的URL放入隊列中,直到滿足程序的停止條件為止。相比于通用網絡爬蟲,聚焦網絡爬蟲的工作流程比較復雜,它需要事先通過一定的網頁分析算法過濾掉一些與主題無關的URL,確保留下來的URL在一定程度上都與主題相關,把它們放入等待抓取的URL隊列。然后再根據搜索策略,從隊列中選擇出下一步要抓取的URL,重復上述操作,直到滿足程序的停止條件為止。聚焦網絡爬蟲能夠爬取到與主題相關度更高的信息,例如:為了快速地獲取微博中的數據,可以利用聚焦爬蟲技術開發出一個用來抓取微博數據的工具[3-5]。在如今大數據時代,聚焦爬蟲能做到大海里撈針,從網絡數據海洋中找出人們需要的信息,并且過濾掉那些“垃圾數據”(廣告信息等一些與檢索主題無關的數據)。

2 Python

Python的作者是一個荷蘭人Guido von Rossum,1982年,Guido從阿姆斯特丹大學獲得了數學和計算機碩士學位[6]。相比于現在,在他的那個年代里,個人電腦的主頻和RAM都很低,這導致電腦的配置很低。為了讓程序能夠在個人電腦上運行,所有的編譯器的核心都是做優化,因為如果不優化,一個大一點的數組就能占滿內存。Guido希望編寫出一種新的語言,這種語言應該具有功能全面,簡單易學,簡單易用,并且能夠擴展等特點。1989年,Guido開始編寫Python語言的編譯器。

3 系統分析

本系統是基于Python的網絡爬蟲系統,用于登錄并爬取豆瓣網的一些相冊、日記、主題、評論等動態的數據信息。并且能夠把通過關鍵字查詢的動態信息數據存儲到數據庫一些數據保存到數據庫,存儲到本地txt文件,同時能夠把相冊動態中的圖片下載到本地,且把相冊信息也記錄下來,在每一頁的操作完成后可以進行翻頁和選頁,繼續操作。因此該系統應該滿足以下要求。

(1) 能夠通過驗證碼的驗證模擬登錄豆瓣網。即不需要通過瀏覽器登錄,通過在控制臺輸入用戶名、密碼和驗證碼實現登錄豆瓣網。

(2) 登錄成功后能夠爬取豆瓣網首頁頁面代碼。即通過登錄成功后的cookie能夠訪問游客權限不能訪問的頁面并把頁面代碼抓取下來。

(3) 能夠在頁面代碼中提取出需要的信息。即需要通過正則表達式匹配等方法,從抓取到的頁面上獲取到有用的數據信息。

(4) 能夠實現翻頁和選頁的功能。即在訪問網站動態頁面時,能夠通過在控制臺中輸入特定的內容進行翻頁或輸入頁碼進行選頁,然后抓取其它的頁面。

(5) 實現關鍵字查詢的功能,對查到的數據爬取下來并存儲到數據庫表中。即在抓取到的頁面上獲取數據時,能夠通過在控制臺輸入關鍵字來爬取所需的信息。

(6) 對爬取到的圖片URL能夠下載到本地并把圖片的詳細信息存儲到本地txt[12]。即不僅要把圖片下載到本地,還要把圖片的主題信息,圖片的所屬用戶,圖片的具體URL等信息存儲到txt文件。

(7) 對日記和其他的動態信息存儲到本地不同的文件中。即對抓取到的不同的數據信息進行不同的存儲方式和存儲路徑。

(8) 在登錄成功的情況下能夠進入個人中心中把當前用戶關注的用戶的信息存儲到數據庫表中。這些信息可能包括用戶的id,昵稱,主頁url,個性簽名等等。

以上就是本課程爬蟲系統的一些基本需求,根據這些需求就可以明確系統的功能。由于本系統注重網絡信息資源的爬取,所以在用戶交互方面可能不太美觀,在該系統中并沒有編寫界面,所有的操作都在Eclipse的控制臺中進行。例如:在控制臺中輸入用戶名、密碼和驗證碼進行登錄,登錄成功后的頁面選擇,頁面選擇后的數據爬取等。

但是,系統運行后爬取的數據可以在存儲數據的本地txt文件中或者在數據庫中查看。所以,本系統是否真的能夠爬取到數據的測試就可以通過觀察本地txt文件的內容變化或數據庫表中記錄的變化來驗證。

本爬蟲系統包括模擬登錄、頁面抓取、信息爬取、數據存儲等主要功能。其中,頁面抓取又包括翻頁抓取,選頁抓取,個人頁面抓取;信息爬取又包括動態抓取,關注用戶抓取;數據存儲又包括寫入文件,下載到本地,存入數據庫,如圖1所示。

一段自動抓取互聯網信息的程序稱為爬蟲,主要組成:爬蟲調度器、URL管理器、網頁下載器、網頁解析器。

⑴ 爬蟲調度器:程序的入口,主要負責爬蟲程序的控制。

⑵ URL管理器:

① 添加新的URL到待爬取集合;

② 判斷待添加URL是否已存在;

③ 判斷是否還有待爬取的URL,將URL從待爬取集合移動到已爬取集合。

URL存儲方式:Python內存即set()集合,關系數據庫、緩存數據庫。

⑶ 網頁下載器:根據URL獲取網頁內容,實現由有urllib2和request。

⑷ 網頁解析器:從網頁中提取出有價值的數據,實現方法有正則表達式、html.parser、BeautifulSoup、lxml。

4 結束語

爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇地訪問萬維網上的網頁及其相關的鏈接,獲取所需要的信息。

本文通過爬蟲對于將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢準備數據資源,實現了網頁數據抓取與分析。

參考文獻(References):

[1] 曾小虎.基于主題的微博網頁爬蟲研究[D].武漢理工大學, 2014.

[2] 周立柱,林玲.聚焦爬蟲技術研究綜述[J].計算機應用,2005. 25(9):1965-1969

[3] 周中華,張惠然,謝江.于Python的新浪微博數據爬蟲[J].計算機應用,2014.34(11):3131-3134

[4] 劉晶晶.面向微博的網絡爬蟲研究與實現[D].復旦大學,2012.

[5] 王晶,朱珂,汪斌強.基于信息數據分析的微博研究綜述[J].計算機應用,2012. 32(7):2027-2029,2037.

[6] (挪) Magnus Lie Hetland. 司維,曾軍崴,譚穎華譯.Python基礎教程[M]. 人民郵電出版社,2014.

主站蜘蛛池模板: 3D动漫精品啪啪一区二区下载| 亚洲香蕉伊综合在人在线| 国产免费福利网站| 亚洲欧美综合精品久久成人网| 午夜国产精品视频| 福利一区在线| 日韩精品亚洲人旧成在线| 国产精品美女网站| 亚洲无线观看| 国产香蕉在线| 欧美色视频网站| 在线视频亚洲色图| 成人综合网址| 999福利激情视频 | 国产在线97| 丁香五月激情图片| 国产丝袜91| 国产成人超碰无码| 日韩毛片免费视频| 成人欧美日韩| 亚洲精品第一页不卡| 免费一级无码在线网站| 四虎影视8848永久精品| 国产福利不卡视频| 999精品视频在线| 国产视频大全| 欧美日本视频在线观看| 毛片网站在线播放| 欧美日本视频在线观看| 免费在线色| 又猛又黄又爽无遮挡的视频网站| 高潮毛片无遮挡高清视频播放| 久草国产在线观看| 91原创视频在线| 亚洲无码高清视频在线观看| 国产最新无码专区在线| 亚洲精品黄| 福利国产微拍广场一区视频在线| 露脸国产精品自产在线播| 日韩国产精品无码一区二区三区 | 69视频国产| 欧美日韩理论| 在线播放精品一区二区啪视频| www.91中文字幕| 国产精品专区第1页| 91福利免费| 久久国产精品77777| 婷婷六月激情综合一区| 一区二区三区四区精品视频 | 色视频国产| 午夜日b视频| 欧美曰批视频免费播放免费| 男女男免费视频网站国产| 影音先锋丝袜制服| 日韩欧美91| 国产激情国语对白普通话| 国产屁屁影院| 婷婷激情亚洲| 国产麻豆精品久久一二三| 国产精品综合色区在线观看| 99精品高清在线播放| 亚洲天堂视频在线观看免费| 免费无码AV片在线观看国产| 精品久久久久久久久久久| a色毛片免费视频| 手机精品福利在线观看| 高清色本在线www| 亚洲品质国产精品无码| 久久青草视频| 婷婷色中文网| 四虎成人免费毛片| 青草免费在线观看| 国产91色| 久久a级片| 婷婷激情五月网| 亚洲久悠悠色悠在线播放| 波多野结衣一区二区三区四区视频| 成人亚洲天堂| 午夜毛片福利| 国产亚洲精品97AA片在线播放| 亚洲精品天堂自在久久77| 欧洲亚洲欧美国产日本高清|