almost 3 years ago

其實本來也不太需要,只是最近真的太無聊...

分析

好吧,反正就先來分析一下,語言就用python,爬文分析工具多。然後就是工具的選擇了。為了get到網頁,我們會需要python request,還有分析器BeautifulSoup

弄下百度吧的帖子事實上滿簡單的,不需要有一些奇怪的cookie(除非有會員限制),或者奇怪參數,參數只需要第幾頁。

res = requests.get("http://tieba.baidu.com/p/xxxx")

如此,我們就可以抓到該帖的內容,接下來就是麻煩的地方,

  • 我們需要知道這帖子總共有幾頁
  • 然後把每頁的帖子的回覆內容弄下來和最後判斷該回覆是否是小說內容

總共頁數

總共頁數可以去看導覽列的尾頁的網址,很容易解決,大概是長這的範例。

pages_a = soup.findAll("li", 
     {"class" : "l_pager pager_theme_4 pb_list_pager"}
)[0].findAll("a") 

last_page_num = getLastNum(pages_a[len(pages_a)-1].get("href"))   

l_pager pager_theme_4 pb_list_pager就是導覽列裡面的唯一性值,getLastNum會把字串裡面最後一個數字傳回來。

每頁回覆的帖子

這部分會發現,事實上不只樓主會回,其他人也會回(可能是給建議或者純粹水帖),不過這很容易解決,只要留下樓主的帖子就行了,關鍵在於要事先取得樓主的名字,然後再遇到其他帖子時用名字塞掉。

大概的成品

放在Github上面了

還有類似的catchdoc(用utf-8編碼,做成網頁的樣子)

← [回顧] 學期結束前的攻略 [小說] 單本小說頁面 →
 
comments powered by Disqus