天天看點

004 爬蟲(最初的爬蟲方式,以及urllib2)

一:最初的爬取方式

1.代碼示例

2.request對象概念

  python中的request其實就是python向伺服器送出請求,得到其傳回的資訊。

3.urllib與urllib2

  是功能強大的網絡程式設計函數庫,通過他們在網絡上通路檔案就像通路本地電腦上的檔案一樣。

  與re子產品結合,可以下載下傳web頁面,提取資訊,這時最開始的抓取方式。

4.常見的請求方式

  get

  post

  put

  delete

二:Post方式的爬取

1.程式(post方式)

三:Get方式的爬

1.是?連結的情況

2.程式

 四:Header設定

1.原有

  有些網站不會同意直接通路,如果有識别問題,站點不會響應

  是以,為了完全模拟浏覽器上的工作,需要設定一些Header的屬性。

2.設定

   user agent='Mozilla/4.0(compatible;MSIE 5.5;Windows NT)'

  headers={'User-Agent':user agent}

  request=urllib2.Request(url,data,headers)

五:使用代理通路

1.緣由

  多次通路,目标網站會禁止你的通路,是以需要更換IP

2.免費的代理ip網站

  http://www.xicidaili.com/

  

六:對上面知識點程式示範

1.爬蟲

 七:異常處理

1.URLError

  産生的原因如下:

  網絡無連接配接,連結不到指定的伺服器,伺服器不存在。

2.解決方式

  使用try except

程式示例如下:

3.HttpError

  是URLError的子類,在利用urlopen方法發出一個請求後,伺服器都會對應一個應答對象response,其中它包含一個數字“狀态嗎”,表示Http協定所傳回的響應的狀态。

  注意點:except的順序。

  顯示403,表示禁止通路。

八:正規表達式

1.Re子產品

  自帶的re子產品,提供正規表達式的支援。

  主要用到的方法:

  #傳回pattern對象

    re.compile(string,[,flag])

  #比對所用的函數

    re.match(pattern,string[,flag])

    re.search(pattern,string[,flag])

    re.split(pattern,string[,maxsplit])

    re.findall(pattern,string[,flag])

2.pattern的建立

  pattern=re,compile(r'hello')

3.flag參數

  flag是比對模式

  可以使用‘|’進行同時生效。

  re.I:表示忽略大小寫

  re.M:多行模式

4.程式示例

5.正規表達式的文法

  主要是那些模糊查找。

6.程式示例代碼

7.效果

004 爬蟲(最初的爬蟲方式,以及urllib2)

8.将資料存儲到Excel表格

  前提:

004 爬蟲(最初的爬蟲方式,以及urllib2)

9.程式示例

10.效果展示

004 爬蟲(最初的爬蟲方式,以及urllib2)