Python網路爬蟲 二 urllib2

2021-08-29 23:30:29 字數 2624 閱讀 6633

1.網路爬蟲的架構 : 

2.url管理器的簡單實現 :

(1)存放待爬取url的 set 集合.

(2)存放未爬取url的  set 集合.

(3)url管理器應該具有的方法 :   新增新的url,    判斷新增的url是否存在,   判斷是否存在待爬取的url,   獲取待爬取的url,   移動爬取完成的url由未爬取 set 集合至  已爬取 set 集合.

(1) 通過url簡單實現.

#直接通過url獲取要爬取的頁面資訊

response = urllib2.uelopen(url)

#獲取爬取的返回狀態碼

statuscode = response.getcode()

#獲取html內容

response.read()

(2) 對request資料的封裝, 此時可以新增請求頭, 設定**, 和請求資料

import urllib2

#獲取request

request = urllib2.request("")

#設定請求頭

request.add_header("user-agent", 'mozilla/5.0')

#獲取響應資訊

response = urllib2.urlopen(request)

#獲取狀態碼

code = response.getcode()

#獲取資訊

info = response.read()

(3)新增一些特殊的處理  : eg, 新增cooker,   httpcookieprocessor  用來處理cookie,   proxyhandler用來處理**,  httpshandler用來處理 https的請求, httpredirecthandler 用來處理跳轉關係.

#獲取cookie的容器

cookie = cookielib.cookiejar()

#獲取cookie處理的模組

#新增cookie處理模組

urllib2.install_opener(opener)

#訪問url

response = urllib2.urlopen("")

print response.getcode()

#列印cookie的內容

print cookie

print response.read()

3.網頁解析器 : 

(1)dom樹結構

4 beautifulsoup4的使用  :  主要使用 bs4 進行網頁的解析操作.

(1)find搜尋出的是符合條件的第乙個元素.  

(2)建立beatuifulsoup4的物件  : 

from bs4 import beautifulsoup

soup = beautifulsoup(

html_doc, #html 字串

'html_parser', #html解析器

from_encoding='utf8' #編碼格式

)

(3)進行節點搜尋 :    class屬性在soup中使用class_表示html的 class屬性, 因為class是python的關鍵字.   下圖中的re表示正則校驗.

(4)訪問節點資訊  :   按照字典的形式訪問節點中屬性的資訊

(5)還可以使用soup物件進行屬性過濾選擇 : 使用soup.select

soup.select("p > #link1")
5. 對於python的set集合 : 

(1)set集合是不重複無序的, 無序指的是存放順序和輸出順序不同.   

(2)set.pop方法, 如果集合中方的是list和元祖時, 刪除的是最左邊的元素, 當存放的是字典和字元的集合的時候是隨機刪除的.

6.python中的靜態方法是寫在class外面, 並且不新增self修飾的方法.

7.python 中 'aaa{}'.format('bbb')會輸出aaabbb

8. re.search(regex, str)  匹配字串中是否包含正規表示式匹配的值.

python網路爬蟲(二)

在第一篇中,我們介紹了如何進行發起乙個http請求,並接受響應。在這一部分中,我們介紹一下如何解析網頁並提取我們需要的資料。我們採用requests這個庫進行乙個網頁請求。r requests.get headers,kwargs 通過這一句 我們即可獲得伺服器傳給我們的響應內容 不考慮連線錯誤等情...

Python網路爬蟲學習(二)

十五.京東商品頁面的爬取 import requests r requests.get r.status code r.encoding r.text 1000 十六.亞馬遜商品頁面的爬取 import requests def main url try kv r requests.get url,...

python網路爬蟲入門(二)

一 python爬取10頁250條資料中的所有 書單 模組案例方法一 encoding utf 8 import requests from bs4 import beautifulsoup i 25 while i 225 i i 25 c str i resp requests.get c so...