python爬虫实战之爬取知乎帖子

 刚开始学习python爬虫,参考代码:https://github.com/lijaha/web-spider/blob/master/Get_ZhiHu_question.py

 相关教程http://www.cnblogs.com/xin-xin/p/4297852.html


  首先要把网页的信息爬取下来,再接着分析。。。。

   代码如下:(爬取https://www.zhihu.com/question/24728633的代码保存为html.txt)

#_*_ coding: utf-8 _*_

import urllib
import urllib2
import re

url = 'https://www.zhihu.com/question/24728633'
request = urllib2.Request(url)
respones = urllib2.urlopen(request)
html = respones.read()
file = open("html.txt","w+")
file.write(html)
print html


接着要对网页进行分析,,,,,,


1.提取帖子问题

   html代码也就是下面的部分

  

大数据听着很牛,实际上也很牛吗?


于是正则表达式是

pattern = re.compile('

就是收集很多用户数据,用机器进行处理嘛,干嘛整天吵得这么high。传统行业的数据,收集和分析慢,互联网时代特别是移动互联网时代,数据收集和分析都变得更快更智能,仅此而已吧。


 
正则表达式:

pattern = re.compile('
(.*?)
.*?
',re.S)仅有
简单说,一顿饭吃一碗,是正常人;一顿饭能吃300碗呢。不就是吃饭嘛。是嘛。。是吗。。。

小规模的数据分析,会有很大噪音。比如你不能因为看到1个人买了黄瓜又买了KY就说两者有什么关联,但是如果几百万个用户都显示了这样的关联,那就能说明一些问题(?)了。可是数据量一旦上了规模,传统的系统就没办法很好的处理了。
比如说你的电商网站每天有几十G的用户点击数据,你希望知道定了鲜花的用户是否也会购买避孕套,然后让决定是否给杜蕾斯做推荐。你决定分析上个季度的用户数据来作决策,不过这些数据结构松散,没有索引,你家的Oracle把磁盘转的吱吱响,转了两天终于给出结果说根据这个季度的历史浏览统计,我们发现鲜花和避孕套有很大的正相关性,因此这个关联推荐是有效的。你回头跟老板商量,他披头对你一通骂,2货,情人节是昨天!
阿里亚马逊ebay这些,成千上万种货物,每天成TB的甚至PB的数据量,要对大量不同的货品种类作分析和推荐,近实时地更新给用户看;推特和Facebook这些,根据用户发布的信息和行为模式,快速地分析整合数据给出精确广告投放是这些公司生存的根本。

等移动互联网或者物联网更普及,数据量只会更大,结构更随意,分析更困难。能从中找到有意思的信息,用传统手段就更难了。

正则表达式:

pattern = re.compile('
(.*?)
',re.S)



代码:

# _*_ coding:utf-8 _*_

import urllib
import urllib2
import re

class Tool:
    RemoveImg = re.compile('| {7}|')
    #匹配图片标签
    RemoveAddr = re.compile('|')#匹配链接标签
    ReplaceLine = re.compile('|
|

')#匹配换行符的标签 ReplaceTD = re.compile('') #匹配制表符 ReplacePara = re.compile('')#匹配段落开头 ReplaceBR = re.compile('

|
')#匹配换行和双换行 RemoveTag = re.compile('<.*?>')#匹配其余的标签 def replace(self,x): x = re.sub(self.RemoveImg,"",x)#删除图片 x = re.sub(self.RemoveAddr,"",x)#删除链接 x = re.sub(self.ReplaceLine,"\n",x)#替换换行符 x = re.sub(self.ReplaceTD,"\t",x)#将制表符替换 x = re.sub(self.ReplacePara,"\n ",x)#段落开头替换 x = re.sub(self.ReplaceBR,"\n",x) x = re.sub(self.RemoveTag,"",x)#删除其余标签 return x.strip() class zhihu: def __init__(self,url): self.url = url self.tool = Tool() self.file=None #获取网页代码 def gethtml(self): url = self.url request = urllib2.Request(url) respones = urllib2.urlopen(request) html = respones.read() return html #获取帖子标题 def gettitle(self,html): pattern = re.compile('

.*?
.*?
.*?
.*?






 

 


你可能感兴趣的:(python爬虫)