天涯 kkndme 大神论房价


文档简介及下载链接

2010年天涯神贴,主要内容为 kkndme 大神对于房价、经济、历史等热点的看法。由于其准确预言了中国的经济和房价的发展历程,使得其在 2018 年被突然发现并迅速变为热帖。由于很多观点有着一定的敏感性,所以多处面临着删帖的风险。本人利用 python 爬虫将其整理成了一个文档并提供下载,以方便自己和大家阅读。遗憾的是本人下手太晚,一些楼层已经被删贴了,但剩下的那部分依然能够反映出 kkndme 大神的观点,读之如饮醇醪。

下载链接: pdf 版 kkndme 论房价

爬虫思路

爬虫的本质是利用计算机来模拟人访问页面的行为,所以我们首先要想我们自己访问天涯神贴的时候怎么操作的。事实上,我们有两种途径:一种是访问PC版的界面,一种是访问移动端的界面。这两者中移动端的界面较为清爽,且可以通过点击“只看楼主”来滤掉大部分的非目标信息,对应的链接就变成了移动端只看楼主,这样便大大地方便了我们的爬取。本文中代码默认需要使用者有库 requests, bs4, python-docx, time。

首先我们选择一个header并以此来对上述链接进行访问

url='http://bbs.tianya.cn/m/post_author-house-252774-1.shtml'
headers = {
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
    }
r=requests.get(url=url+page,headers=headers)
soup=BeautifulSoup(r.text,'html.parser')

打印soup,我们可以看到其中已经包含了我们想要得到的网页中的一切信息,现在需要把我们感兴趣的信息提取出来,即kkndme大神的发帖内容,以及去往下一页的链接。

观察页面内容,发现我们感兴趣的帖子内容都在 "class=bd" 的 "div" 元素中,且都在首层的 "p" 元素中,因此可以通过下面代码得到每一段的内容。

contents=soup.find_all('div',class_='bd')
paragraphs=content.find_all("p",recursive=False)
for p in paragraphs:
    print(p.get_text())

在 "class=u-btn next-btn" 的 "a" 元素中我们能找到向下一页跳转的链接,这样我们就可以自动地去访问下一个页面。

next_page=soup.find('a',class_='u-btn next-btn').get('href')

看起来好像我们已经得到了我们想要的,然而访问几个页面后就会出现问题。。。这是因为天涯允许匿名访客访问限制数目的页面,但再往后就要登录才能访问。这个时候我们就需要先用自己的账号登录,如下图所示在 chrome 中利用 F12 查看自己的 cookie,处理后填到 requests 中。

获取cookie

最后利用 python-docx 包将帖子内容存进 word 文档中,本文中所提供的 pdf 即由该 word 转化而来。

最终代码

假如你看到了这里,那说明你对于技术有一定的兴趣。爬取页面的大致思路如上文所述,具体的代码要复杂一些,可以到我的github页面上去下载。

本博客不定期更新,主要内容为爬虫、大数据、各种小工具等技术问题,欢迎到 github 上 follow 我。