#python2環境下使用_*_ coding:utf-8 _*_
import
urllib2
import
reclass
spider:
def__init__
(self):
self.page=1 #
當前應該爬第幾頁
self.enable=true #
是否繼續載入頁面
'''內涵段子吧 的乙個 爬蟲類
'''def
load_page(self,page):
'''@brief 定義乙個url請求網頁的方法
@param page 需要請求第幾頁
@returns 返回的頁面html
'''url="
"+str(page)+"
.html
"user_agent="
mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; win64; x64; trident/5.0)
"header=
req=urllib2.request(url,headers=header)
response=urllib2.urlopen(req)
html=response.read()
#把獲取到的網頁的編碼轉換成utf-8,具體的網頁編碼根據網頁自身來,這裡是gbk所以,是gbk
gbk_html=html.decode('
gbk').encode('
utf-8')
#< div class ="f18 mb20" >
#用正規表示式將gbk_html過濾,注意,用單引號,裡面用雙引號,因為網頁用的是雙引號
#re.s 如果沒有re.s 則是只匹配一行有沒有符合規則的字串,如果沒有則下一行重新匹配
#如果加上re.s 則是將所有的字串將乙個整體進行匹配
pattern=re.compile(r'
(.*?)
', re.s)
item_list=pattern.findall(gbk_html)
return
item_list
defdeal_one_page(self,item_list,page):
'''處理每一頁的資料
"******* 第 %d 頁 爬取完畢...*******
" %page
for item in
item_list:
#print "********************"
items= item.replace("
", "").replace("
", "").replace("
", ""
) self.write_to_file(items)
#寫入到txt中
defwrite_to_file(self,txt):
f=open("
./mystroy.txt
",'a
') #
追加形式開啟檔案
f.write(txt)
f.write(
"******************************")
f.close()
defdo_work(self):
'''讓爬蟲能夠根據我們的意願進行迴圈爬取工作
'''while
self.enable:
try:
item_list=self.load_page(self.page)
except
urllib2.urlerror as e:
e.reason
continue
self.deal_one_page(item_list, self.page)
self.page += 1
"按回車繼續...
"輸入quit 退出
"command =raw_input()
if (command == "
quit"):
self.enable =false
break
if__name__=="
__main__":
spider().do_work()
分享爬蟲的簡單知識。附帶爬蟲案例。
用python寫乙個的爬蟲。對於python這個指令碼語言來說寫爬蟲不是一件很難的事情。在寫爬蟲之前我們先了解一些簡單的爬蟲知識。爬蟲分類 2.聚焦網路爬蟲 3.增量式網路爬蟲 4.深層頁面爬蟲 簡單爬蟲架構 1.url管理器 universal resource location 3.網頁解析器 ...
爬蟲基礎知識簡單案例
1.爬蟲基礎 爬蟲概念 什麼是爬蟲 爬蟲是乙個應用程式 是指某乙個用於爬取資料的應用程式 爬取的目標可以使整個網際網路 也可以是單獨的某乙個伺服器 在cs結構中 爬蟲屬於client 客戶端 爬蟲的價值 網際網路中最有價值的就是資料 爬蟲中首要任務就是要通過網路取獲取模板伺服器的資料 來為自己創造價...
簡單的爬蟲
參考xlzd的知乎專欄 encoding utf 8 from bs4 import beautifulsoup import requests import codecs download url requests模擬http協議中的get請求,用於獲取目標 的原始碼 def download p...