溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么實現(xiàn)可獲取網(wǎng)易頁面所有文本信息的爬蟲功能

發(fā)布時間:2021-03-23 10:58:51 來源:億速云 閱讀:202 作者:小新 欄目:開發(fā)技術

小編給大家分享一下Python怎么實現(xiàn)可獲取網(wǎng)易頁面所有文本信息的爬蟲功能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

具體如下:

#coding=utf-8
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'已經(jīng)啟動網(wǎng)易爬蟲,爬爬...'
  #初始化加載頁面并將其轉碼存儲
  def wangyi(self):
    #讀取頁面的原始信息并將其從gbk轉碼
    Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk')
    #獲取頁面標題
    title=self.find_title(Page)
    print u'網(wǎng)頁名稱:'+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'爬蟲報告:無法加載網(wǎng)頁標題...'
    return title
  #保存頁面信息
  def save_infor(self,title):
    #加載頁面文本信息到數(shù)組中
    self.get_infor()
    #創(chuàng)建并打開本地文件
    f=open(title+'.txt','w+')
    #把獲取的頁面信息寫入文件中
    f.writelines(self.pageinfor)
    #關閉打開的文件
    f.close()
    print u'爬蟲報告:文件'+title+'.txt'+u'已經(jīng)下載:'+os.getcwd()
    print u'按任意鍵退出...'
    raw_input()
  #獲取頁面源碼并將其存儲到數(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:
      #對獲取的文本信息用gbk進行編碼
      self.pageinfor.append(emItem.encode('gbk')+'\n')
    #把span tag中獲取的文本信息添加到數(shù)組pageinfor中
    for spanItem in spanTagItems:
      #對獲取的文本信息用gbk進行編碼
      self.pageinfor.append(spanItem.encode('gbk')+'\n')
    #把a tag中獲取的文本信息添加到數(shù)組pageinfor中
    for aItem in aTagItems:
      #對獲取的文本信息用gbk進行編碼
      self.pageinfor.append(aItem.encode('gbk')+'\n')
#------------程序入口處----------------
"""
wangyiSpider=WangYi_Spider()
wangyiSpider.wangyi()

看完了這篇文章,相信你對“Python怎么實現(xiàn)可獲取網(wǎng)易頁面所有文本信息的爬蟲功能”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI