python爬蟲基礎 urllib2附帶資料解析

2021-08-18 02:55:19 字數 2807 閱讀 4623

# python中用於獲取**的模組

def getwebpage( x ):  #我們定義乙個獲取頁面的函式,x 是用於呈遞你在頁面中搜尋的內容的引數

' + 『你想要搜尋的引數』   # 結合自己頁面情況適當修改

page = urllib2.urlopen(url)

pagecontent = page.read( )

return pagecontent                #返回的是html格式的頁面資訊

2.第二種,你需要用到post方法,將你搜尋的內容放在postdata裡面,然後返回你需要的頁面  

def getwebpage( x ):  #我們定義乙個獲取頁面的函式,x 是用於呈遞你在頁面中搜尋的內容的引數

url =  'http://***xx/***'    #這個**是你進入搜尋介面的**

postdata = urllib.urlencode(  )   #這裡面的post引數輸入需要自己去查

req= urllib2.request (url, postdata)

pagecontent = urllib2.urlopen (req). read( )

return pagecontent                #返回的是html格式的頁面資訊

import re  # 正規表示式,用於匹配字元

from bs4 import beautifulsoup  # 匯入beautifulsoup 模組 

soup =  beautifulsoup(pagecontent)  #pagecontent就是上面我們搜尋得到的頁面 

soup就是 html 中所有的標籤(tag)beautifulsoup處理格式化後的字串,乙個標準的tag形式為: 

hwkobe24 

通過一些過濾方法,我們可以從soup中獲取我們需要的資訊: 

(1) find_all ( name , attrs , recursive , text , **kwargs)

這裡面,我們通過新增對標籤的約束來獲取需要的標籤列表, 比如 soup.find_all ('p') 就是尋找名字為『p』的 標籤,而soup.find_all (class = "tittle") 就是找到所有class屬性為"tittle" 的標籤,以及soup.find_all ( class = re.compile('lass')) 表示 class屬性中包含『lass』的所有標籤,這裡用到了正規表示式(可以自己學習一下,非常有用滴) 

當我們獲取了所有想要標籤的列表之後,遍歷這個列表,再獲取標籤中你需要的內容,通常我們需要標籤中的文字部分,也就是網頁中顯示出來的文字,**如下: 

taglist = soup.find_all (class="tittle")   #如果標籤比較複雜,可以用多個過濾條件使過濾更加嚴格 

for tag in taglist:

print tag.text

f.write ( str(tag.text) )  #將這些資訊寫入本地檔案中以後使用 

(2)find( name , attrs , recursive , text , **kwargs ) 

它與 find_all( ) 方法唯一的區別是 find_all() 方法的返回結果是值包含乙個元素的列表,而 find() 方法直接返回結果 

(3)find_parents( )  find_parent( ) 

find_all() 和 find() 只搜尋當前節點的所有子節點,孫子節點等. 

find_parents() 和 find_parent() 用來搜尋當前節點的父輩節點,搜尋方法與普通tag的搜尋方法相同,搜尋文件搜尋文件包含的內容 

(4)find_next_siblings()  find_next_sibling() 

這2個方法通過 .next_siblings 屬性對當 tag 的所有後面解析的兄弟 tag 節點進代, find_next_siblings() 方法返回所有符合條件的後面的兄弟節點,find_next_sibling() 只返回符合條件的後面的第乙個tag節點 

(5)find_previous_siblings()  find_previous_sibling() 

這2個方法通過 .previous_siblings 屬性對當前 tag 的前面解析的兄弟 tag 節點進行迭代, find_previous_siblings()方法返回所有符合條件的前面的兄弟節點, find_previous_sibling() 方法返回第乙個符合條件的前面的兄弟節點 

(6)find_all_next()  find_next() 

這2個方法通過 .next_elements 屬性對當前 tag 的之後的 tag 和字串進行迭代, find_all_next() 方法返回所有符合條件的節點, find_next() 方法返回第乙個符合條件的節點 

(7)find_all_previous() 和 find_previous()     

這2個方法通過 .previous_elements 屬性對當前節點前面的 tag 和字串進行迭代, find_all_previous() 方法返回所有符合條件的節點, find_previous()方法返回第乙個符合條件的節點。     

爬蟲 Python爬蟲學習筆記之Urllib庫

1.urllib.request開啟和讀取url 2.urllib.error包含urllib.request各種錯誤的模組 3.urllib.parse解析url 4.urllib.robotparse解析 robots.txt檔案 傳送get請求 引入urlopen庫 用於開啟網頁 from u...

python爬蟲基礎

一 什麼是爬蟲 通常爬蟲是從某個 的某個頁面開始,爬取這個頁面的內容,找到網頁中的其他鏈結位址,然後從這個位址爬到下乙個頁面,這樣一直不停的爬下去,進去批量的抓取資訊。那麼,我們可以看出網路爬蟲就是乙個不停爬取網頁抓取資訊的程式。二 爬蟲的基本流程 1,發起請求 向目標站點傳送乙個requests請...

python爬蟲基礎

爬蟲 爬蟲,全稱網路爬蟲,指按照一定的規則 模擬瀏覽器人工登入網頁的方式 自動抓取網路資訊資料的程式。簡單的說,就是將瀏覽器上網所能看到頁面上的內容通過爬蟲程式自動獲取下來,並進行儲存。爬蟲其實就是乙個程式自動收集獲取指定網路資料資訊的過程,網路資料資訊量十分龐大,人工獲取無法完成,這時就需要爬蟲來...