網路爬蟲理解學習筆記(一)

2021-09-25 04:36:45 字數 2788 閱讀 4542

網路爬蟲是自動從網際網路定向或不定向地採集資訊地一種程式工具。網路爬蟲分為很多類別,常見的有批量型網路爬蟲、增量型網路爬蟲(通用爬蟲)、垂直網路爬蟲(聚焦爬蟲)。

通用爬蟲:首先給定初始url,爬蟲會自動獲取這個url上的所有url並將已經在爬取的位址存放在已爬取列表中。將新的url放在佇列並依次讀取新的url,依次判讀是否滿足所設定的停止獲取的條件。

聚焦爬蟲:首先定義乙個檔案(對要抓取目標的定義),爬取獲取的初始的url,並獲得當前頁面新的url,並將已經爬取過的位址放在已爬取列表。設定過濾器將不需要的url過濾掉,剩下的放在佇列裡並依次爬取,根據權重的計算判斷爬取目標的先後順序,根據設定的停止條件進行判斷,若果滿足,則停止。

兩者總體上很相似,區別在於通用爬蟲爬取的目標很廣泛而聚焦爬蟲則爬取特定的目標。

正規表示式:正規表示式是一種進行資料篩選的表示式。可以通過正規表示式從龐大的資料中提取出我們需要的、關注的、有價值的資訊。在python中是re模組,系統自帶。

原子:原子是正規表示式的最基本的組成單位,每個正規表示式中至少要包含乙個原子。原子是由所有那些未顯示指定為元字元的列印和非列印字元組成,常見的原子型別有:

a.普通字元作為原子。例如:abcdefg·····

b.非列印字元作為原子。例如:\n(換行符)、\t(製表符)

c.通用字元作為原子。例如:\w(字母、數字、下劃線)、\w(除字母、數字、下劃線)、\d(十進位制數字)、\d(除十進位制數字   )、\s(空白字元)、\s(除空白字元)

d.原子表作為原子。若在原子表中加符號^則表示非的意思,除了原子表中的都匹配。

e.特殊字元和元字元作為原子。元字元就是具有特殊含義的字元。如  .   :匹配除換行符以外的任意乙個字元。^:匹配字串開始的位置(注意區別於原子表)。$:匹配結束位置。*:匹配前面出現1次,0次或者多次。?:匹配出現1次或者0次。+:匹配出現1次或者多次。:前面這個原子恰好出現n次。[n,m]:至少出現n次,最多出現m次。[n,]:最少出現n次。| :模式選擇符或。():模式單元。

模式修正符:可以在不改變正規表示式的情況下,通過模式修正符改變正規表示式的含義,從而實現一些匹配結果的調整等功能。

i:匹配時忽略大小寫

m:多行匹配

l:本地化識別匹配

u:unicode

s:讓 . 匹配包括換行

貪婪模式:其核心就是盡可能多的匹配。

例如:

str='dkjspdjskdpsdsaff'

pat='d.*p'

rest=re.search(pat,str,re.i)

print(rest)

結果為:,會盡可能多的匹配d之後和p之前的字元。

懶惰模式:其核心就是盡可能少的匹配。

例如:

import re

string='dsdfsfdggfslsadadsffdg'

pat='d.*?f'

rst=re.search(pat,string,re.i)

print(rest)

結果為:

注意:其中 ? 是懶惰模式的標識。

總結:懶惰模式相對於貪婪模式來說更加精準!

正規表示式函式有re.match()、re.search()、re.compile(全域性匹配函式)、re.sub()函式,正規表示式本身無任何功能,目的是為了實現匹配,而正規表示式函式則是實現具體的功能。

re.match():只能從頭開始匹配,如果不是從頭開始則不能匹配。只提取乙個結果。

re.search():匹配資訊並且查詢出來。可以從任意位置開始匹配。只提取乙個結果。

re.compile(全域性匹配函式):把一堆資料中與匹配項匹配的所有資料提取出來。

pat='[a-za-z]+://[^\s]*[.com|.cn]'

rst=re.compile(pat).findall(string)

print(rst)

#結果為:['']

匹配**號碼:

str='dfsdfs011-254521352135sdasd545311310sdsad07770002-13541354353453sdsa'

pat='\d-\d|\d-\d'

rst=re.compile(pat).findall(str)

print(rst)

#結果為:['011-25452135', '0002-1354135']

僅僅做乙個簡單的爬蟲,非常容易寫,可以直接使用urllib模組。格式如下:

import urllib.request

data=urllib.request.urlopen('**').read().decode('utf-8')#爬取是以檔案形式,所以需要寫上read()

#所有資訊都已經儲存到了data裡面

通過這樣便可以實現乙個簡單的爬蟲。提取資訊時候,如果資料型別不匹配,一般可以使用decode.('utf-8')進行轉換。

網路爬蟲學習筆記 一 網路爬蟲概述

網路爬蟲 又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者 是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻 自動索引 模擬程式或者蠕蟲。爬蟲的基本結構框架流程圖如下 網路爬蟲的基本框架如下 1 首先需要乙個已知的種子url庫 2...

網路爬蟲 python學習筆記

pip install requestsr requests.get url r requests.get url,params none,kwargs request其實只有乙個方法 request 有兩個物件 import request r requests.get print r.statu...

python網路爬蟲學習筆記

爬取網頁的通用 框架 網路爬蟲的盜亦有道 requests爬取例項 自動爬取html頁面 自動網路請求提交 主要方法 說明requests.request 構造乙個請求 requests.get 獲取html網頁的主要方法,對應於http的get requests.head 獲取html網頁頭資訊的...