Python實(shí)現(xiàn)可獲取網(wǎng)易頁面所有文本信息的網(wǎng)易網(wǎng)絡(luò)爬蟲功能示例
本文實(shí)例講述了Python實(shí)現(xiàn)可獲取網(wǎng)易頁面所有文本信息的網(wǎng)易網(wǎng)絡(luò)爬蟲功能。分享給大家供大家參考,具體如下:
#coding=utf-8 #--------------------------------------- # 程序:網(wǎng)易爬蟲 # 作者:ewang # 日期:2016-7-6 # 語言:Python 2.7 # 功能:獲取網(wǎng)易頁面中的文本信息并保存到TXT文件中。 #--------------------------------------- import string import urllib2 import re import os class WangYi_Spider: #申明相關(guān)屬性 def __init__(self): #給wangyiUrl屬性賦值 self.wangyiUrl="http://www.163.com/" #用來保存頁面中文字信息 self.pageinfor=[] print u'已經(jīng)啟動(dòng)網(wǎng)易爬蟲,爬爬...' #初始化加載頁面并將其轉(zhuǎn)碼存儲(chǔ) def wangyi(self): #讀取頁面的原始信息并將其從gbk轉(zhuǎn)碼 Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk') #獲取頁面標(biāo)題 title=self.find_title(Page) print u'網(wǎng)頁名稱:'+title #獲取頁面中文本信息 self.save_infor(title) #查找頁面標(biāo)題 def find_title(self,page): #匹配<title>xxxx</title> myTitle=re.search(r'<title>(.*?)</title>',page,re.S) #初始化標(biāo)題名為暫無標(biāo)題 title=u'暫無標(biāo)題' #如果標(biāo)題存在把標(biāo)題賦值給title if myTitle: #(.*?)這稱作一個(gè)group,組是從1開始 title=myTitle.group(1) else: print u'爬蟲報(bào)告:無法加載網(wǎng)頁標(biāo)題...' return title #保存頁面信息 def save_infor(self,title): #加載頁面文本信息到數(shù)組中 self.get_infor() #創(chuàng)建并打開本地文件 f=open(title+'.txt','w+') #把獲取的頁面信息寫入文件中 f.writelines(self.pageinfor) #關(guān)閉打開的文件 f.close() print u'爬蟲報(bào)告:文件'+title+'.txt'+u'已經(jīng)下載:'+os.getcwd() print u'按任意鍵退出...' raw_input() #獲取頁面源碼并將其存儲(chǔ)到數(shù)組中 def get_infor(self): #獲取頁面中的源碼 page=urllib2.urlopen(self.wangyiUrl).read() #把頁面中的內(nèi)容gbk解碼然后獲取頁面中所有的文本信息 self.deal_infor(page.decode('gbk')) #從頁面代碼中獲取所需文信息 def deal_infor(self,page): #獲取<em >XXX</em>的文本信息XXX emTagItems=re.findall("<em.*?>(\W+?)</em>",page,re.S) #獲取<span>XXXX</a>的文本信息XXXX spanTagItems=re.findall("<span>(\W+?)</span>",page,re.S) #獲取<a .*>XXXX</a>的文本信息XXXX aTagItems=re.findall("<a.*?>(\W+?)</a>",page,re.S) #把em tag中獲取的文本信息添加到數(shù)組pageinfor中 for emItem in emTagItems: #對(duì)獲取的文本信息用gbk進(jìn)行編碼 self.pageinfor.append(emItem.encode('gbk')+'\n') #把span tag中獲取的文本信息添加到數(shù)組pageinfor中 for spanItem in spanTagItems: #對(duì)獲取的文本信息用gbk進(jìn)行編碼 self.pageinfor.append(spanItem.encode('gbk')+'\n') #把a(bǔ) tag中獲取的文本信息添加到數(shù)組pageinfor中 for aItem in aTagItems: #對(duì)獲取的文本信息用gbk進(jìn)行編碼 self.pageinfor.append(aItem.encode('gbk')+'\n') #------------程序入口處---------------- print u"""#--------------------------------------- # 程序:網(wǎng)易爬蟲 # 作者:ewang # 日期:2016-7-6 # 語言:Python 2.7 # 功能:獲取網(wǎng)易頁面中的文本信息并保存到TXT文件中 #-------------------------------------------------- """ wangyiSpider=WangYi_Spider() wangyiSpider.wangyi()
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)之極驗(yàn)滑動(dòng)驗(yàn)證碼的識(shí)別
- 選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢(shì)和理由
- Python3網(wǎng)絡(luò)爬蟲中的requests高級(jí)用法詳解
- 詳解用python寫網(wǎng)絡(luò)爬蟲-爬取新浪微博評(píng)論
- Python網(wǎng)絡(luò)爬蟲之爬取微博熱搜
- Python實(shí)現(xiàn)爬蟲從網(wǎng)絡(luò)上下載文檔的實(shí)例代碼
- Python爬蟲實(shí)例_城市公交網(wǎng)絡(luò)站點(diǎn)數(shù)據(jù)的爬取方法
- python網(wǎng)絡(luò)爬蟲 CrawlSpider使用詳解
相關(guān)文章
Python讀取及保存mat文件的注意事項(xiàng)說明
這篇文章主要介紹了Python讀取及保存mat文件的注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python?計(jì)算機(jī)視覺編程進(jìn)階之OpenCV?圖像銳化及邊緣檢測(cè)
計(jì)算機(jī)視覺這種技術(shù)可以將靜止圖像或視頻數(shù)據(jù)轉(zhuǎn)換為一種決策或新的表示。所有這樣的轉(zhuǎn)換都是為了完成某種特定的目的而進(jìn)行的,本篇我們來學(xué)習(xí)下如何對(duì)圖像進(jìn)行銳化處理以及如何進(jìn)行邊緣檢測(cè)2021-11-11python?label與one-hot之間的互相轉(zhuǎn)換方式
這篇文章主要介紹了python?label與one-hot之間的互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02如何利用Python+OpenCV實(shí)現(xiàn)簡易圖像邊緣輪廓檢測(cè)(零基礎(chǔ))
輪廓是形狀分析和物體檢測(cè)和識(shí)別的有用工具,下面這篇文章主要給大家介紹了關(guān)于如何利用Python+OpenCV實(shí)現(xiàn)簡易圖像邊緣輪廓檢測(cè)(零基礎(chǔ))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05python進(jìn)階學(xué)習(xí)實(shí)時(shí)目標(biāo)跟蹤示例詳解
這篇文章主要為大家介紹了python進(jìn)階學(xué)習(xí)實(shí)時(shí)目標(biāo)跟蹤示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python如何將數(shù)據(jù)集按比例隨機(jī)切分
這篇文章主要介紹了python如何將數(shù)據(jù)集按比例隨機(jī)切分問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09python如何標(biāo)準(zhǔn)化日期時(shí)間格式轉(zhuǎn)化成非標(biāo)準(zhǔn)化格式
這篇文章主要介紹了python如何標(biāo)準(zhǔn)化日期時(shí)間格式轉(zhuǎn)化成非標(biāo)準(zhǔn)化格式問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06