部落格園200頁資料的抓取

2022-08-24 06:24:11 字數 1722 閱讀 5365

首先直接上手requests獲取**資料,發現可以直接獲取。

因此不需要進行多餘的反爬措施,只需要專注於資料的獲取邏輯。

資料是直接放在源**中的。

資料獲取:觀察頁面源**可知

資料都是存放在  」「標籤下,可以選擇先獲取某個部落格的所有內容隨後再進行資訊的獲取

資料的獲取則是使用select函式,css選擇器來獲取資訊

這裡我定義了兩個函式

其一是獲取網頁頁面鏈結的函式

def

return_url_list(page):

"""生成部落格url列表並返回

"""url_list =

for i in range(1,page+1):

"" +str(i)) # 將兩個頁數不同的url比較可以知道其不同點在於最後的乙個數字,因此可以通過for迴圈構建鏈結

# 但其實我想到了一種更為節省空間的方法,即使用生成器,每生成乙個就抓起乙個

return url_list

其二是根據鏈結獲取網頁資訊並輸出的函式

def

get_data(url,m):

"""獲取中python欄目下的200頁資料

資料報括:

1:部落格標題

2:部落格簡述

3:發布人

4:發布日期

"""rsp = requests.get(url,headers=)

soup =bs(rsp.text)

k =0

for tag in soup.select("

div.post_item_body"):

print("

",tag.h3.text)

print("

",tag.h3.a["

href"])

for t in tag.select("

div.post_item_foot"):

t =t.get_text()

l = t.split("\n"

)

for i in

l:# 這裡主要是對div標籤下的資料簡單地獲取了

i_list = i.split("")

for i in

i_list:

if len(i) >= 2:

print

(i)

k = k + 1

print("

**********====第 {} 個部落格成功***************=

".format((m-1)*20+k))

結果展示;

標籤的獲取沒有充分的經驗,總是使用落後的select來獲取標籤,一遇到比較少見的標籤就不知所措,毫無頭緒,這是需要改正的地方。

表示我這次對**進行了分門別類的優秀操作,因為我使用的是jupyter,所以我將需要匯入模組的**放在了第乙個塊,將第乙個函式放在了第二塊,將第二個函式放在了第三塊,最後的主函式放在了第四塊,這樣編碼之後我發現不僅思路更加清晰了,其美觀程度也是上公升了一大截,不再是一團糟的感覺了,我用起來也是舒服很多。

希望繼續保持,加油加油。

網頁資訊抓取抓取部落格園的文章標題和鏈結

上圖顯示的是首頁的dom樹,顯然只需提取出class為post item的div,再重中提取出class為titlelnk的a標誌即可。這樣的功能可以通過以下函式來實現 在文字html的文字查詢標誌名為tagname,並且屬性attrname的值為attrvalue的所有標誌 例如 findtagb...

部落格園的夢想

非常感謝大家對發展的熱烈關注與熱心幫助 非常感謝很多朋友提出了非常好的建議,讓我有很多收穫,給我帶來了更大的信心與動力!的發展牽動了這麼多朋友的心,讓我很感動,更讓我感受了更大的責任!的發展來自於所聚集的人群的力量,這個人群不僅僅是技術愛好者,技術精英,而且是影響著中國軟體產業發展的中流砥柱。eyy...

部落格園的CSRF

csrf全稱 cross site request forgery,跨站請求偽造。通俗理解 攻擊者盜用當前使用者身份,髮請當前使用者的惡意請求 如郵件,銀行轉賬等。csrf原理 登入 a,生成本地cookie資訊 登入危險 b,b獲取 a的內容,並向a傳送請求操作,若成功,則csrf過程成功。其中登...