日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

糗事百科的网络爬虫(v0.2)源码及解析 .

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 糗事百科的网络爬虫(v0.2)源码及解析 . 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目?jī)?nèi)容:

用Python寫的糗事百科的網(wǎng)絡(luò)爬蟲。

使用方法:

新建一個(gè)Bug.py文件,然后將代碼復(fù)制到里面后,雙擊運(yùn)行。

程序功能:

在命令提示行中瀏覽糗事百科。

原理解釋:

首先,先瀏覽一下糗事百科的主頁(yè):http://www.qiushibaike.com/hot/page/1

可以看出來(lái),鏈接中page/后面的數(shù)字就是對(duì)應(yīng)的頁(yè)碼,記住這一點(diǎn)為以后的編寫做準(zhǔn)備。

然后,右擊查看頁(yè)面源碼:

觀察發(fā)現(xiàn),每一個(gè)段子都用div標(biāo)記,其中class必為content,title是發(fā)帖時(shí)間,我們只需要用正則表達(dá)式將其“扣”出來(lái)就可以了。

明白了原理之后,剩下的就是正則表達(dá)式的內(nèi)容了,可以參照這篇博文:

http://blog.csdn.net/wxg694175346/article/details/8929576


運(yùn)行效果




# -*- coding: utf-8 -*- #--------------------------------------- # 程序:糗百爬蟲 # 版本:0.2 # 作者:why # 日期:2013-05-15 # 語(yǔ)言:Python 2.7 # 操作:輸入quit退出閱讀糗事百科 # 功能:按下回車依次瀏覽今日的糗百熱點(diǎn) # 更新:解決了命令提示行下亂碼的問題 #---------------------------------------import urllib2 import urllib import re import thread import time#----------- 處理頁(yè)面上的各種標(biāo)簽 ----------- class HTML_Tool:# 用非 貪婪模式 匹配 \t 或者 \n 或者 空格 或者 超鏈接 或者 圖片BgnCharToNoneRex = re.compile("(\t|\n| |<a.*?>|<img.*?>)")# 用非 貪婪模式 匹配 任意<>標(biāo)簽EndCharToNoneRex = re.compile("<.*?>")# 用非 貪婪模式 匹配 任意<p>標(biāo)簽BgnPartRex = re.compile("<p.*?>")CharToNewLineRex = re.compile("(<br/>|</p>|<tr>|<div>|</div>)")CharToNextTabRex = re.compile("<td>")# 將一些html的符號(hào)實(shí)體轉(zhuǎn)變?yōu)樵挤?hào)replaceTab = [("<","<"),(">",">"),("&","&"),("&","\""),("?"," ")]def Replace_Char(self,x):x = self.BgnCharToNoneRex.sub("",x)x = self.BgnPartRex.sub("\n ",x)x = self.CharToNewLineRex.sub("\n",x)x = self.CharToNextTabRex.sub("\t",x)x = self.EndCharToNoneRex.sub("",x)for t in self.replaceTab:x = x.replace(t[0],t[1])return x #----------- 處理頁(yè)面上的各種標(biāo)簽 -----------#----------- 加載處理糗事百科 ----------- class HTML_Model:def __init__(self):self.page = 1self.pages = []self.myTool = HTML_Tool()self.enable = False# 將所有的段子都扣出來(lái),添加到列表中并且返回列表def GetPage(self,page):myUrl = "http://m.qiushibaike.com/hot/page/" + pagemyResponse = urllib2.urlopen(myUrl)myPage = myResponse.read()#encode的作用是將unicode編碼轉(zhuǎn)換成其他編碼的字符串#decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼unicodePage = myPage.decode("utf-8")# 找出所有class="content"的div標(biāo)記#re.S是任意匹配模式,也就是.可以匹配換行符myItems = re.findall('<div.*?class="content".*?title="(.*?)">(.*?)</div>',unicodePage,re.S)items = []for item in myItems:# item 中第一個(gè)是div的標(biāo)題,也就是時(shí)間# item 中第二個(gè)是div的內(nèi)容,也就是內(nèi)容items.append([item[0].replace("\n",""),item[1].replace("\n","")])return items# 用于加載新的段子def LoadPage(self):# 如果用戶未輸入quit則一直運(yùn)行while self.enable:# 如果pages數(shù)組中的內(nèi)容小于2個(gè)if len(self.pages) < 2:try:# 獲取新的頁(yè)面中的段子們myPage = self.GetPage(str(self.page))self.page += 1self.pages.append(myPage)except:print '無(wú)法鏈接糗事百科!'else:time.sleep(1)def ShowPage(self,q,page):for items in q:print u'第%d頁(yè)' % page , items[0]print self.myTool.Replace_Char(items[1])myInput = raw_input()if myInput == "quit":self.enable = Falsebreakdef Start(self):self.enable = Truepage = self.pageprint u'正在加載中請(qǐng)稍候......'# 新建一個(gè)線程在后臺(tái)加載段子并存儲(chǔ)thread.start_new_thread(self.LoadPage,())#----------- 加載處理糗事百科 -----------while self.enable:# 如果self的page數(shù)組中存有元素if self.pages:nowPage = self.pages[0]del self.pages[0]self.ShowPage(nowPage,page)page += 1#----------- 程序的入口處 ----------- print u""" ---------------------------------------程序:糗百爬蟲版本:0.1作者:why日期:2013-05-15語(yǔ)言:Python 2.7操作:輸入quit退出閱讀糗事百科功能:按下回車依次瀏覽今日的糗百熱點(diǎn) --------------------------------------- """print u'請(qǐng)按下回車瀏覽今日的糗百內(nèi)容:' raw_input(' ') myModel = HTML_Model() myModel.Start()

總結(jié)

以上是生活随笔為你收集整理的糗事百科的网络爬虫(v0.2)源码及解析 .的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久一级片 | 亚洲最大在线 | 亚洲第一区在线播放 | 亚洲一区中文字幕在线观看 | 男女在线观看 | 精品久久久久一区二区国产 | 91在线观看视频网站 | 麻豆伦理片 | 色婷婷综合久久久久中文一区二区 | 青青久久国产 | 久久久久久久久久久福利 | 日本极品少妇 | 日韩午夜视频在线观看 | 国产精品久久久久久影视 | 成人四色 | 免费亚洲一区 | 土耳其xxxx性hd极品 | 国产情侣激情自拍 | 午夜av免费 | 99在线精品视频免费观看20 | 精品少妇av | 日韩国产一区 | 欧美第五页 | 国产亚洲欧美日韩精品一区二区三区 | 狠狠亚洲 | 国产精品一区二区久久久 | 精品一区二区三区不卡 | 国产suv精品一区二区60 | 亚洲一区二区伦理 | 中文字幕www | 西西人体44www大胆无码 | 亚洲精品无amm毛片 国内一区二区三区 | 日韩精品一区二区三区不卡在线 | 久久四虎 | av在线一区二区三区 | 狠狠干综合网 | 91福利免费视频 | 亚洲一区色 | 亚洲成a人片77777精品 | 青青草激情视频 | 无码人妻丰满熟妇啪啪欧美 | 亚洲女人初尝黑人巨大 | 嫩模被强到高潮呻吟不断 | 久久久久久久综合色一本 | 少妇毛片一区二区三区 | 亚洲第一国产 | 久久色在线 | 一级大片免费 | 求个黄色网址 | 亚洲欧美日韩一区二区三区在线观看 | 人妖一区二区三区 | 成人免费视频国产免费网站 | 国产成人无码网站 | 免费成人在线视频观看 | 欧美巨大荫蒂茸毛毛人妖 | 三级a级片 | 91一级片 | 人人人插| 欧美混交群体交 | 999黄色片| 男人肌肌桶女人肌肌 | 一级性视频 | 国产麻豆免费观看 | 亚洲欧洲无码一区二区三区 | 我不卡av | 激情五月综合色婷婷一区二区 | 一区二区男女 | 日韩不卡av | 神马电影久久 | 日本久久综合网 | 日韩有码在线观看 | 日批视频免费在线观看 | 波多野结衣一区二区三区中文字幕 | 玖玖免费 | 成人综合一区二区 | 亚洲宅男天堂 | 久久九九国产视频 | 国产精品福利一区二区三区 | 国产亚洲精品成人av久久ww | 国内一级视频 | www.天堂av.com | www.香蕉视频在线观看 | 九一爱爱 | 免费黄色av网站 | 国产精品久久久久9999爆乳 | 成人欧美一区二区三区在线播放 | wwwsss在线观看 | av一区二区在线观看 | 中文字幕 国产精品 | 牛人盗摄一区二区三区视频 | 女性高潮视频 | av无码av天天av天天爽 | 久久国产精品免费 | 国产精品爱啪在线线免费观看 | 深田咏美在线x99av | 中文字幕国产 | 国产69久久 | 国产一区二区色 | 爆操白虎逼 |