1. 程式人生 > >Python進行資料爬取

Python進行資料爬取

1.基本的爬蟲架構

主要包括排程器,URL管理器,網頁下載器,網頁解析器這些部分,實現價值資料的獲取。

1.1 URL管理器

      對待抓取的URL集合和已抓取的URL集合進行管理,避免重複抓取和迴圈抓取。

      主要有5個部分的功能,判斷待新增URL是否在容器中、新增新的URL到待爬取集合、判斷是否還有待爬取集合、獲取待爬取URL、將URL從待爬取的集合移動到已爬取集合中。

     分類:Python記憶體(待爬取和已爬取兩個set()集合),關係資料庫(eg:MySQL,建表來實現儲存),快取資料庫(eg:redis,支援set資料結構)。大型公司一般採用高效的快取資料庫作為URL管理器,小型的或想要永久儲存的採用關係資料庫作為URL管理器,小型的不需要儲存的可以直接儲存在Python記憶體中。

1.2 網頁下載器(爬蟲的核心元件)

       將網際網路上URL對應的網頁下載到本地。

       主要功能有:將待獲取URL對應的網際網路網頁以HTML的形式下載到本地,並以本地檔案或記憶體字串的形式進行儲存,以便後續的處理。

       分類:urllib2(Python官方基礎模組),requests(Python的第三方外掛)等。

1.2.1 urllib2下載網頁的方法

a.使用urlopen函式直接獲取網頁資訊

具體程式碼:


b.新增data(使用者需要輸入的資料),http header資料,結合urllib2的Request和urlopen函式來獲取網頁資訊

具體程式碼:


c.新增特殊情景的處理器,根據不同的URL選擇不同的處理器(eg:HTTPCookieProcessor、ProxyHandler、HTTPSHandler、HTTPRedirectHandler),綜合使用urllib2的build_opener、install_opener和urlopen

函式來獲取網頁資訊。

具體程式碼(以Cookie為例):


1.3 網頁解析器

        從網頁中提取有價值資料的工具。

        主要功能有:提取價值資料,提供新的待爬取的URL列表。

        分類:模糊匹配(正則表示式),結構化解析(html.parser,Beautiful Soup第三方外掛,lxml)。其中Beautiful Soup這個第三方外掛可以使用html.parser或lxml作為解析器,功能較強大。

1.3.1 結構化解析

         將整個網頁文件載入為一個DOM(Document Object Model文件物件模型)樹。

         

1.3.2 Beautiful Soup網頁解析語法

a.根據下載的HTML網頁,建立BeautifulSoup物件。此時即將整個網頁文件字串下載為一個DOM樹。


b.根據DOM樹進行節點的搜尋,對應的方法有find_all(搜尋出所有滿足要求的節點)和find(搜尋出第一個滿足要求的節點),這兩種方法的引數設定相同,分別為name,attrs,string,分別對應為名稱、屬性、文字,並依據這三種資訊進行搜尋。


c.在獲取節點後,我們可以對節點的名稱、屬性、文字等進行解析,訪問節點資訊。


2.執行流程


相關推薦

Python進行資料

1.基本的爬蟲架構主要包括排程器,URL管理器,網頁下載器,網頁解析器這些部分,實現價值資料的獲取。1.1 URL管理器      對待抓取的URL集合和已抓取的URL集合進行管理,避免重複抓取和迴圈抓取。      主要有5個部分的功能,判斷待新增URL是否在容器中、新增新

Python網路資料----網路爬蟲基礎(一)

The website is the API......(未來的資料都是通過網路來提供的,website本身對爬蟲來講就是自動獲取資料的API)。掌握定向網路資料爬取和網頁解析的基本能力。 ##Requests 庫的使用,此庫是Python公認的優秀的第三方網路爬蟲庫。能夠自動的爬取HTML頁面;自動的

scrapy網頁跳轉後進行資料

因為一開始的網站爬取的是一個href,所以需要去跳轉一下,即發一個Request <a href="https://XXX.com.cn/w/2018-11-24/doc-ihpevhck4340972.html">你好</a> 以下是自己的程式碼:  

Python爬蟲實習筆記 | Week3 資料和正則再學習

2018/10/29 1.所思所想:雖然自己的考試在即,但工作上不能有半點馬虎,要認真努力,不辜負期望。中午和他們去吃飯,算是吃飯創新吧。下午爬了雞西的網站,還有一些欄位沒爬出來,正則用的不熟悉,此時終於露出端倪,心情不是很好。。明天上午把正則好好看看。 2.工作: [1].哈爾濱:html p

python:爬蟲資料的處理之Json字串的處理(2)

#Json字串的處理 Json字串轉化為Python資料型別 import json JsonStr ='{"name":"sunck","age":"18","hobby":["money","power","English"],"parames":{"a":1,"b":2}}' Js

Python爬蟲實習筆記 | Week4 專案資料與反思

2018/11/05 1.所思所想: 今天我把Python爬蟲實戰這本書Chapter6看完,很有感觸的一點是,書本中對爬蟲實現的模組化設計很給我靈感,讓我對專案中比較無語的函式拼接有了解決之道,內省還是比較興奮。此外,在吃飯問題上需要認真思考下,是否應注意合理的膳食,是否應對要吃的進行好好考究。下

你以為Python爬蟲只能網頁資料嗎?APP也是可以的呢!

摘要 大多數APP裡面返回的是json格式資料,或者一堆加密過的資料 。這裡以超級課程表APP為例,抓取超級課程表裡使用者發的話題。 1 抓取APP資料包 方法詳細可以參考這篇博文:http://my.oschina.net/jhao104/blog/605963 得到超級課程表

Python使用xpath資料返回空列表解決方案積累

筆者以爬取2018年AAAI人工智慧頂會論文元資料為例。其中包括標題(title)和摘要(abstract)等欄位 前言: 首先需要檢視該網頁是否可以爬取,通過在URL後加入/robots,txt可以檢視。 ①tbody問題 URL:2018AAAI的第一篇

Python爬蟲:拉勾網資料分析崗位資料

1 JSON介紹 JSON(JavaScript Object Notation)已經成為通過HTTP請求在Web瀏覽器和其他應用程式之間傳送資料的標準格式之一。比CSV格式更加靈活。Json資料格式,非常接近於有效的Pyhton程式碼,其特點是:JSON物件所

Python爬蟲入門教程 3-100 美空網資料

簡介 從今天開始,我們嘗試用2篇部落格的內容量,搞定一個網站叫做“美空網”網址為:http://www.moko.cc/, 這個網站我分析了一下,我們要爬取的圖片在 下面這個網址 http://www.moko.cc/post/1302075.html 然後在去分析一下,我需要找到一個圖片列表

Python爬蟲入門教程 15-100 石家莊政民互動資料

寫在前面 今天,咱抓取一個網站,這個網站呢,涉及的內容就是 網友留言和回覆,特別簡單,但是網站是gov的。網址為 http://www.sjz.gov.cn/col/1490066682000/index.html 首先宣告,為了學習,絕無惡意抓取資訊,不管

python爬蟲東方資料

0.背景1.分析網頁請求開啟網頁,選擇某資料右鍵檢視元素,可以檢視該資料在載入後的網頁中的位置。 F12開啟開發者工具,開啟網頁檢視頁面請求,可以發現網頁傳送了多個請求,請求到的檔案包括html、css、js、png等,如下圖所示。 網頁主框架通過html請求載入,資料不在其中。資料是通過js單獨載入的。2.

python使用requests資料(酷狗hot500案例)(講解細緻)

關於使用requests爬取酷狗hot500的案例 1.  案例環境:        python版本:python3.x;  

如何進行手機APP的資料

轉載地址:https://segmentfault.com/a/1190000013439547 平時我們的爬蟲多是針對網頁的,但是隨著手機端APP應用數量的增多,相應的爬取需求也就越來越多,因此手機端APP的資料爬取對於一名爬蟲工程師來說是一項必備的技能。我們知道,網頁爬取的時候我經常使用F1

Python爬蟲之動態頁面資料

很多網站通常會用到Ajax和動態HTML技術,因而只是使用基於靜態頁面爬取的方法是行不通的。對於動態網站資訊的爬取需要使用另外的一些方法。 先看看如何分辨網站時靜態的還是動態的,正常而言含有“檢視更多”字樣或者開啟網站時下拉才會載入內容出來的進本都是動態的,簡便的方法就是在

美團西安酒店資料Python

一、找到存放資料的檔案,分析其url首先開啟美團酒店部分頁面,審查元素network裡面的xhr部分,會發現一個HotelSearch******的檔案如下圖選中點開的部分:發現所在頁面的酒店存在此檔案裡,然後找出此檔案的Headers,如下圖:Request URL很長,分

python嘗試從通聯資料資訊並儲存在mongodb資料庫中

import pandas as pd import numpy as np import pymongo import tushare as ts ts.set_token('XXXXXXX') f

[python爬蟲] BeautifulSoup+CSV儲存貴州農產品資料

在學習使用正則表示式、BeautifulSoup技術或Selenium技術爬取網路資料過程中,通常會將爬取的資料儲存至TXT檔案中,前面也講述過海量資料儲存至本地MySQL資料庫中,這裡主要補充Beau

Python Selenium + PhantomJS考拉海購商品資料

爬完QQ音樂以後打算爬網易雲音樂的,中間出了一點小狀況,就改爬考拉海購了(什麼狀況你猜呀❛˓◞˂̶✧以後會爬完網易雲音樂的!) 今天寫近段時間的最後一篇,寫完這篇就要開始期末複習了,寒假再來更新 pip install selenium 下載s

進行資料資料,存入Mongodb

爬蟲剛入門,對趕集網進行一次所有商品大資料的爬取 使用了多執行緒,存到資料庫裡,目前不知道要爬多久 有一個要注意的地方,比如我們要進行兩次爬蟲,一次是把每個專案的連結爬下來,一次是把每個專案裡的詳情資訊爬下來,最好是先把每個專案的連結存下來,並用資料庫儲存,然後再從資料庫取