Python實現可獲取網易頁面所有文本信息的網易網絡爬蟲功能示例
更新時間:2018年01月15日 11:00:36 作者:壞蛋是我
這篇文章主要介紹了Python實現可獲取網易頁面所有文本信息的網易網絡爬蟲功能,涉及Python針對網頁的獲取、字符串正則判定等相關操作技巧,需要的朋友可以參考下
本文實例講述了Python實現可獲取網易頁面所有文本信息的網易網絡爬蟲功能。分享給大家供大家參考,具體如下:
#coding=utf-8
#---------------------------------------
# 程序:網易爬蟲
# 作者:ewang
# 日期:2016-7-6
# 語言:Python 2.7
# 功能:獲取網易頁面中的文本信息并保存到TXT文件中。
#---------------------------------------
import string
import urllib2
import re
import os
class WangYi_Spider:
#申明相關屬性
def __init__(self):
#給wangyiUrl屬性賦值
self.wangyiUrl="http://www.163.com/"
#用來保存頁面中文字信息
self.pageinfor=[]
print u'已經啟動網易爬蟲,爬爬...'
#初始化加載頁面并將其轉碼存儲
def wangyi(self):
#讀取頁面的原始信息并將其從gbk轉碼
Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk')
#獲取頁面標題
title=self.find_title(Page)
print u'網頁名稱:'+title
#獲取頁面中文本信息
self.save_infor(title)
#查找頁面標題
def find_title(self,page):
#匹配<title>xxxx</title>
myTitle=re.search(r'<title>(.*?)</title>',page,re.S)
#初始化標題名為暫無標題
title=u'暫無標題'
#如果標題存在把標題賦值給title
if myTitle:
#(.*?)這稱作一個group,組是從1開始
title=myTitle.group(1)
else:
print u'爬蟲報告:無法加載網頁標題...'
return title
#保存頁面信息
def save_infor(self,title):
#加載頁面文本信息到數組中
self.get_infor()
#創(chuàng)建并打開本地文件
f=open(title+'.txt','w+')
#把獲取的頁面信息寫入文件中
f.writelines(self.pageinfor)
#關閉打開的文件
f.close()
print u'爬蟲報告:文件'+title+'.txt'+u'已經下載:'+os.getcwd()
print u'按任意鍵退出...'
raw_input()
#獲取頁面源碼并將其存儲到數組中
def get_infor(self):
#獲取頁面中的源碼
page=urllib2.urlopen(self.wangyiUrl).read()
#把頁面中的內容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中獲取的文本信息添加到數組pageinfor中
for emItem in emTagItems:
#對獲取的文本信息用gbk進行編碼
self.pageinfor.append(emItem.encode('gbk')+'\n')
#把span tag中獲取的文本信息添加到數組pageinfor中
for spanItem in spanTagItems:
#對獲取的文本信息用gbk進行編碼
self.pageinfor.append(spanItem.encode('gbk')+'\n')
#把a tag中獲取的文本信息添加到數組pageinfor中
for aItem in aTagItems:
#對獲取的文本信息用gbk進行編碼
self.pageinfor.append(aItem.encode('gbk')+'\n')
#------------程序入口處----------------
print u"""#---------------------------------------
# 程序:網易爬蟲
# 作者:ewang
# 日期:2016-7-6
# 語言:Python 2.7
# 功能:獲取網易頁面中的文本信息并保存到TXT文件中
#--------------------------------------------------
"""
wangyiSpider=WangYi_Spider()
wangyiSpider.wangyi()
更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python?計算機視覺編程進階之OpenCV?圖像銳化及邊緣檢測
計算機視覺這種技術可以將靜止圖像或視頻數據轉換為一種決策或新的表示。所有這樣的轉換都是為了完成某種特定的目的而進行的,本篇我們來學習下如何對圖像進行銳化處理以及如何進行邊緣檢測2021-11-11
如何利用Python+OpenCV實現簡易圖像邊緣輪廓檢測(零基礎)
輪廓是形狀分析和物體檢測和識別的有用工具,下面這篇文章主要給大家介紹了關于如何利用Python+OpenCV實現簡易圖像邊緣輪廓檢測(零基礎)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05

