前言:有時候無聊看一些搞笑的段子,糗事百科還是個不錯的網站,所以就想用Python來玩一下。也比較簡單,就寫出來分享一下。嘿嘿 環境:Python 2.7 + win7 現在開始,打開糗事百科網站,先來分析。地址:https://www.qiushibaike.com 一般像這種都是文本的話,查看源 ...
前言:有時候無聊看一些搞笑的段子,糗事百科還是個不錯的網站,所以就想用Python來玩一下。也比較簡單,就寫出來分享一下。嘿嘿
環境:Python 2.7 + win7
現在開始,打開糗事百科網站,先來分析。地址:https://www.qiushibaike.com
一般像這種都是文本的話,查看源代碼就可以看到內容了。
已經可以看到都是在一個class 為content 的div裡面,這樣就很簡單了,直接上正則表達式來匹配就好了。
<div.*?class="content">(.*?)</div>
這樣等會再代碼裡面就可以提取出來段子內容了,再來看一下分頁。
分頁也很簡單,很有規律,直接接上頁數就行了。
OK 既然 都分析完了 那就直接上代碼。
#-*- coding: UTF-8 -*- # author : Corleone from Tkinter import * import urllib2,re def load(page): url="http://www.qiushibaike.com/text/page/"+str(page)+"/?s=4937798" user_agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36" headers={'User-Agent':user_agent} res=urllib2.Request(url,headers = headers) html = urllib2.urlopen(res).read() reg=re.compile(r'<div.*?class="content">(.*?)</div>',re.S) duanzi=reg.findall(html) return duanzi i=0 page=1 def get(): if i==0: txtlist=load(page) page+=1 if i<20: txt.delete(1.0,END) txt.insert(1.0,txtlist[i].replace("<span>","").replace("</span>","").replace("</br>","").replace("\n","").replace("<br/>","")) i+=1 global i global page global txtlist else: i=0 def main(): root=Tk() # 定義一個視窗 root.title("Corleone") # 定義視窗標題 root.geometry('500x500') # 定義視窗大小 b=Button(root,text="next",width=25,bg="red",command=get) # 定義一個按鈕 b.pack(side=BOTTOM) # 按鈕的佈局 放在視窗最下麵 global txt txt=Text(root,font=(u"黑體",20)) # 定義一個編輯界面 txt.pack(expand=YES,fill=BOTH) # 編輯界面佈局 隨視窗大小而自動改變 root.mainloop() # 讓視窗一直在屏幕上顯示出來 main()
這裡用到了Python自帶的圖形化界面庫 Tkinter 來做gui界面。一頁大概20個段子 next 按鈕 下一個 看完了 就翻頁。
嘿嘿,這樣就能直接看了。OK 好了 這篇文章也很簡單,沒啥技術含量,莫見怪,代碼都是我之前寫的,現在依然能用,就發出來了 : )