Python爬蟲知識點一

2021-08-10 19:37:32 字數 2685 閱讀 8032

一。入門知識:

1.1.http簡介

uri和url的區別:uri強調的是資源,而url強調的是資源的位置。

1.2常用請求型別

options: 返回伺服器針對特定資源所支援的http請求方法。

head: 向伺服器索要與get請求相一致的響應,只不過響應體將不會被返回。

get: 向特定資源發出請求

post: 向指定資源提交資料進行處理請求

delete: 請求伺服器刪除指定uri所標識的資源

patch: 用來將區域性修改應用於某一資源

1.3http常見狀態碼

200/ok: 請求成功

201/created: 請求已被實現,且乙個新資源已根據請求被建立,uri跟隨location頭資訊返回。

202/accepted: 伺服器已接受請求,但尚未處理。

400/bad request: 請求無法被伺服器理解

401/unauthorized: 當前請求需要使用者驗證

403/forbidden: 伺服器已理解請求,但拒絕執行。

404/not found

1.4 爬蟲框架介紹

第一步:將種子url放入佇列

第二步:從佇列中獲取url,抓取內容。

第三步:解析抓取內容,將需要進一步抓取的url放入工作佇列,儲存解析後的內容

1.5 抓取策略

深度優先:舉例先完成專題一的所有內容,再完成專題二的所有內容。

廣度優先

pagerank

大站優先策略 舉例:

根據**的pr順序 指定優先順序

1.6 如何去重

hash表

bloom過濾器

1.7 爬蟲質量標準

分布式可伸縮性

效能和有效性

質量新鮮性

更新可擴充套件性

二。**實施

import

requests

import

xml.etree.elementtree as et

from xml.parsers.expat import

parsercreate

class

defaultsaxhandler(object):

def__init__

(self, provinces):

self.provinces =provinces

#處理標籤開始

defstart_element(self, name, attrs):

if name != '

map'

: name = attrs['

title']

number = attrs['

href']

#處理標籤結束

defend_element(self, name):

pass

#文字處理

defchar_data(self, text):

pass

defget_province_entry(url):

#獲取文字,並用gb2312解碼

content = requests.get(url).content.decode('

gb2312')

#確定要查詢字串的開始結束位置,並用切片獲取內容。

start = content.find('')

end = content.find('')

content = content[start:end + len('

')].strip()

print

(content)

provinces =

#生成sax處理器

handler =defaultsaxhandler(provinces)

#初始化分析器

parser =parsercreate()

parser.startelementhandler =handler.start_element

parser.endelementhandler =handler.end_element

parser.characterdatahandler =handler.char_data

#解析資料

parser.parse(content)

#結果字典為每一頁的入口**

return

provinces

provinces = get_province_entry('

')print(provinces)

結果如下:

ps: start方法中判斷不等於map標籤的即為area標籤 然後選取href title屬性對應的值即可

Python爬蟲知識點總結

模擬瀏覽器傳送請求,獲取響應 需要根據url位址對應的響應為準進行資料的提取 response.content bytes python3 的分類 高匿名 不知道在使用 匿名 知道在使用 不知道真實ip 透明 對方知道真實的ip if 條件成立,if前面的結果賦值給to,否則else後面的結果賦值給...

Python 爬蟲必備小知識點一

1.url和uri的區別 uri 是統一資源識別符號 universal resource identifier url 是統一資源定位符 universal resource locator 用一句話概括它們的區別 uri 是用字串來標識某一網際網路資源,而 url 則是表示資源的位址 我們說某個...

python大一知識點 python知識點複習

放假歸來,這幾天複習了一下好久不用的python,總結了一下知識點。語法基礎tuple與list的異同都由多個元素組成 tuple由 組成,list由組成 tuple不可變,list可變 tuple表示的是一種結構,而list表示的是多個事物的集合 tuple操作比list快 字串用法要點 轉義符和...