Python網路爬蟲

2021-07-05 10:44:49 字數 2282 閱讀 9258

找到url,也就是相當於入口,找到你要爬取的鏈結,獲取整個頁面資料

使用正規表示式,匹配到你想要爬取的內容,這裡使用的主要是正規表示式和一些常用的開源庫

最後一步就是寫入文字以及儲存問題了,如文字檔案、資料庫

# coding:utf-8      	   #是用來指定檔案編碼為utf-8

from urllib import urlopen #匯入rullib模板用urlopen函式的形式作介面

import chardet #匯入chardet模板,編碼識別模組。

import re #匯入re模板,通過re模組提供對正規表示式的支援

import urllib #匯入urllib模板,獲取url

url =

""'''用urllib.urlopen讀取**的原始碼,建立乙個表示遠端url的類檔案物件,然後像本地檔案一樣操作這個類檔案物件來獲取遠端資料。

引數url表示遠端資料的路徑,一般是**。

read()使用方式與檔案物件完全一樣,檔案中讀取資料。此時text就是獲取的整個頁面資料即是源**'''

text = urllib.urlopen(url)

.read(

)

#需要先檢測text檔案的編碼,然後將其轉化為另一種編碼。 這時候就會用到chardet

chars=chardet.detect(text)

code =chars[

'encoding'

]#decode的作用是將text0檔案編碼的字串轉換成unicode編碼,表示將code編碼的字元text轉換成unicode編碼

text =

str(text)

.decode(code,

'ignore'

)#正規表示式匹配語句--title

title_pattern = re.

compile

("(.*?)"

)#findall 返回 list,以列表的形式返回text裡匹配title_pattern的不重疊的子串。

title = re.findall(title_pattern, text)

有時爬取的內容是不能一步到位的,第一次匹配的內容往往是還包括其他資訊,下面介紹幾個方法進一步準確爬取到資訊

現在爬取的內容已經過濾好了,接下來就是儲存的問題了。

(.)可以匹配除了換行符以外的任意字元,且只能匹配乙個字母,而不是兩個或零個

例項:正規表示式: 「.ython」

字串1:「python」 (√)

字串2:「cpython」(×)

()可以將特殊字元作為普通字元使用

正規表示式: 「.ython」

字串1: 「python」 (×)

字串2: 「.ython」 (√)

使用中括號括住字串建立字符集,字符集可以匹配它所包含的任意字元。

^反轉字符集

正規表示式: 「^[a-z]ython」

字串1: 「python」 (√)

字串2: 「1ython」 (×)

字串3: 「jython」 (√)

(|)是用於選項選擇的特殊符號,圓括號則能夠實現對模式的特定部分進行選擇

正規表示式: "perl|python"或 「p(erl|ython)」

字串1: 「python」 (√)

字串2: 「perl」 (√)

[|]------使用豎

?可以使子模式成為可選項,可有可無

*允許模式重複匹配0次或多次------.*

+允許模式重複匹配1次或多次

允許模式匹配m~n次

^標識匹配模式的開頭

$標識匹配模式的結尾

正規表示式: 「^ht+p」 表示匹配一次,http開頭的匹配

字串1: 「http:baidu.com」 (√)

字串2: 「www.baidu.com」 (×)

正規表示式: 「com$」 表示com結尾的匹配

字串3: 「http:baidu.com」 (√)

字串4: 「http:baidu.com」 (√ )

compile:建立包含正規表示式的字串的模式物件

match:在字串的開始處匹配模式,注意:該方法的返回值是布林值

split:根據模式的匹配項分割字串,注意:返回值是列表

findall:列出所有匹配項------每個字母都匹配,注意:返回值是列表

search:返回第一次匹配到的值

python網路爬蟲

這篇部落格簡單的實現了乙個網路爬蟲指令碼,所謂網路爬蟲就是從 某乙個頁面 通常是首頁 開始,讀取網頁的內容,找到在網頁中的其它鏈結位址,然後通過這些鏈結位址尋找下乙個網頁,這樣一直迴圈下去,直到把這個 所有的網頁都抓取完為止。下面就是乙個簡單地網路爬蟲程式 note 這個命令的意思是,從爬去尋找關鍵...

python網路爬蟲

前言去掉所有標籤 dr re.compile r re.s dd dr.sub jiner 任意內容 可以匹配多位數字 可以匹配用逗號隔開的數字 可以匹配一位的數字 可以匹配帶小數點的數字 匹配空白符 匹配最後兩位 re.search 0 9 0 9 0 9 s.dd 當然,爬蟲還有乙個很關鍵的就通...

Python 網路爬蟲

python在設計上堅持了清晰劃一的風格,這使得python成為一門易讀 易維護,並且被大量使用者所歡迎的 用途廣泛的語言。學習python也有一段時間了,接下來做一下簡單的爬蟲程式,用來獲取一些網頁上的資料 網頁圖 爬取的資料 實現 coding utf 8 import urllib.reque...