[试着用思想来投资] 20161116【充实计划】第282期
时间:2016-11-16 参与挑战30天 第5天
1.今天你阅读到的有价值的全文内容链接
爬虫学习一系列:urllib2抓取网页内容:
http://www.cnblogs.com/BaiYiShaoNian/p/4582131.html
正则表达式 - 语法:
http://www.runoob.com/regexp/regexp-syntax.html
常用正则表达式大全 (转):
http://blog.csdn.net/onebigday/article/details/5429868
2.今天你阅读到的有价值的内容段落摘录
所谓网页抓取,就是把URL地址中指定的网络资源从网络中读取出来,保存到本地。我们平时在浏览器中通过网址浏览网页,只不过我们看到的是解析过的页面效果,而通过程序获取的则是程序源代码。我们通过使用Python中urllib2来获取网页的URL资源,最简单方法就是调用urlopen 方法。
正则表达式,又称为正则表示法、常规表示法。正则表达式使用单个字符串来描述、匹配一系列符号某个句法规则的字符串。通俗的说,正则表达式就是在程序中定义了字符串的某种规则,然后我们在网页源代码中找出符合这种规则的所有代码语句,不符合的就淘汰不要。
因为今天看的网页主要是教程,大部分的有价值的内容都与正则表达式和urllib2库用法有关,在这里就不一一摘录了,有兴趣的论友可以去看一下第一部分提供的链接。
3.今天你阅读到的有价值信息的自我思考点评感想
昨天突突发奇想,LZ创建了“试着用思想来投资-挑战30天”这个活动,坛友在主题帖下面跟帖-读书签到,因为LZ没有限制读书内容(比如像我这种,感觉天天都在不务正业 哈哈),翻阅坛友的跟帖过程中,不时会发现一些精彩回帖,大概每天有7,8份的样子。并且坛友所阅读的内容,一部分也会随着时事的变化而发生改变,比如前段时间的美国大选。由于坛友问阅读习惯不同,选择读书资源的途径也因人而异,因此我发现即便大家在某个时间段所阅读的内容相似,但资源十分丰富,所以我打算写一个简单的爬虫,将这个活动每天的精彩帖子整理收集起来,想想可以如何利用一下(现在简单的想法是对时间段内热门时事的精彩回帖整理到一起,重新编辑生成一遍针对这个热门时事的全面解读)。
1) 利用Urllib2库获取页面Html实体
- # 传入页码,获取该页帖子的代码
- def getPage(self, pageNum):
- try:
- # 构建URL
- url = 'https://bbs.pinggu.org/thread-' + self.baseURL + '-' + str(pageNum) + '-1.html'
- request = urllib2.Request(url)
- response = urllib2.urlopen(request)
- # 返回'gbk'格式编码内容
- return response.read().decode('gbk')
- # 无法连接,报错
- except urllib2.URLError, e:
- if hasattr(e, "reason"):
- print u"连接经管之家失败,错误原因", e.reason
- return None
复制代码
2) 解析页面获取帖子标题-目的:将获取到的标题作为生成txt文件的标题
- # 获取帖子标题
- def getTitle(self, page):
- # 得到标题的正则表达式
- pattern = re.compile('<title>(.*?)</title>', re.S)
- result = re.search(pattern, page)
- if result:
- # 如果存在,则返回标题
- return result.group(1).strip()
- else:
- return None
复制代码
3) 解析页面获取帖子每一层楼的内容-目的:将获取到的内容作为生成txt文件的内容
- def getContent(self, page):
- # 匹配所有楼层的内容
- pattern = re.compile('<td class="t_f.*?id="postmessage_.*?>(.*?)</td>', re.S)
- items = re.findall(pattern, page)
- contents = []
- for item in items:
- # 将文本进行去除标签处理,同时在前后加入换行符
- tool = Tool()
- content = tool.replace(item)
- contents.append((content).encode('utf-8'))
- return contents
复制代码
还有一些通过解析页面获取帖子一共有多少页;筛选内容;创建,写入txt的操作就不一一列举啦
最终我们需要的是帖子的代号,就能获得精彩回答的txt文件。比如今天挑战30天主题帖的地址:
https://bbs.pinggu.org/thread-4943302-1-1.html
那么帖子的代号为:4943302
不足:在解析内容的时候有一些标签处理的还有有瑕疵,生成的txt文件内容布局还不够美观,有时候也会存储一些写的较长的,或者引用较多的打卡内容。不过还是可以用哒,最后附上爬去昨天281期帖子的txt文件。有时间还不不断完善哒!
4.昨日你阅读的时间量:2 小时
5.你参与活动至今的总时间量:9.5 小时