python 抓取腾讯微博数据并做简单的分析 .
2013-06-17 11:15
786 查看
利用python去读取腾讯微博中某个人的数据,统计和他相关的一些连接,并对每个打印每个连接的数据,本人采用的python版本为3.3.
[python]
view plaincopyprint?
from html.parser import HTMLParser
import urllib.request
import re
pattern = re.compile(r'http://t.qq.com/*?')
class MyParser(HTMLParser):
a_txt =False
total = 0
sample_list = []
def inputSelfAddress(self, name):
self.sample_list.append(name)
def __init__(self):
HTMLParser.__init__(self)
def handle_starttag(self, tag, attrs):
if tag=='div':
for name,value in attrs:
if (name == 'class')and(value == 'msgCnt'):
self.a_txt=True
if tag=='a':
for name, value in attrs:
if(name == 'href'):
match = pattern.match(value)
if(match):
if value in self.sample_list:
return
else:
self.total=self.total+1
self.sample_list.append(value)
def handle_data(self, data):
if self.a_txt:
print (data)
self.a_txt=False
headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
opener = urllib.request.build_opener()
opener.addheaders = [headers]
strAddress = "http://t.qq.com/xiaoRainie"
fp =opener.open(strAddress)
mybytes = fp.read()
mystr = mybytes.decode("utf8")
fp.close()
myparser = MyParser()
myparser.inputSelfAddress(strAddress)
myparser.feed(mystr)
print("总数:", myparser.total-11)
for i in range(int(myparser.total), 1, -1):
print(myparser.sample_list[i-1])
print("结束")
for i in range(int(myparser.total), 1, -1):
fp =opener.open(myparser.sample_list[i-1])
myparser.inputSelfAddress(myparser.sample_list[i-1])
mybytes = fp.read()
mystr = mybytes.decode("utf8")
fp.close()
myparser = MyParser()
myparser.feed(mystr)
这里简单使用了python 的html 分析模块,和url 处理模块!
[python]
view plaincopyprint?
from html.parser import HTMLParser
import urllib.request
import re
pattern = re.compile(r'http://t.qq.com/*?')
class MyParser(HTMLParser):
a_txt =False
total = 0
sample_list = []
def inputSelfAddress(self, name):
self.sample_list.append(name)
def __init__(self):
HTMLParser.__init__(self)
def handle_starttag(self, tag, attrs):
if tag=='div':
for name,value in attrs:
if (name == 'class')and(value == 'msgCnt'):
self.a_txt=True
if tag=='a':
for name, value in attrs:
if(name == 'href'):
match = pattern.match(value)
if(match):
if value in self.sample_list:
return
else:
self.total=self.total+1
self.sample_list.append(value)
def handle_data(self, data):
if self.a_txt:
print (data)
self.a_txt=False
headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
opener = urllib.request.build_opener()
opener.addheaders = [headers]
strAddress = "http://t.qq.com/xiaoRainie"
fp =opener.open(strAddress)
mybytes = fp.read()
mystr = mybytes.decode("utf8")
fp.close()
myparser = MyParser()
myparser.inputSelfAddress(strAddress)
myparser.feed(mystr)
print("总数:", myparser.total-11)
for i in range(int(myparser.total), 1, -1):
print(myparser.sample_list[i-1])
print("结束")
for i in range(int(myparser.total), 1, -1):
fp =opener.open(myparser.sample_list[i-1])
myparser.inputSelfAddress(myparser.sample_list[i-1])
mybytes = fp.read()
mystr = mybytes.decode("utf8")
fp.close()
myparser = MyParser()
myparser.feed(mystr)
from html.parser import HTMLParser import urllib.request import re pattern = re.compile(r'http://t.qq.com/*?') class MyParser(HTMLParser): a_txt =False total = 0 sample_list = [] def inputSelfAddress(self, name): self.sample_list.append(name) def __init__(self): HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): if tag=='div': for name,value in attrs: if (name == 'class')and(value == 'msgCnt'): self.a_txt=True if tag=='a': for name, value in attrs: if(name == 'href'): match = pattern.match(value) if(match): if value in self.sample_list: return else: self.total=self.total+1 self.sample_list.append(value) def handle_data(self, data): if self.a_txt: print (data) self.a_txt=False headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11') opener = urllib.request.build_opener() opener.addheaders = [headers] strAddress = "http://t.qq.com/xiaoRainie" fp =opener.open(strAddress) mybytes = fp.read() mystr = mybytes.decode("utf8") fp.close() myparser = MyParser() myparser.inputSelfAddress(strAddress) myparser.feed(mystr) print("总数:", myparser.total-11) for i in range(int(myparser.total), 1, -1): print(myparser.sample_list[i-1]) print("结束") for i in range(int(myparser.total), 1, -1): fp =opener.open(myparser.sample_list[i-1]) myparser.inputSelfAddress(myparser.sample_list[i-1]) mybytes = fp.read() mystr = mybytes.decode("utf8") fp.close() myparser = MyParser() myparser.feed(mystr)
这里简单使用了python 的html 分析模块,和url 处理模块!
相关文章推荐
- python 抓取腾讯微博数据并做简单的分析
- 【Python数据挖掘课程】九.回归模型LinearRegression简单分析氧化物数据
- python&php数据抓取、爬虫分析与中介,有网址案例
- python数据抓取分析的示例代码(python + mongodb)
- Python运用于数据分析的简单教程
- python采用requests库模拟登录和抓取数据的简单示例
- 利用 Python 进行数据分析(七)pandas 简单介绍(Series 和 DataFrame)
- 【python日常一】使用python抓取拉勾网职位信息并做简单统计分析
- 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
- 用python抓取“3d”彩票数据,怎么分析你说了算!
- 【Python数据挖掘课程】九.回归模型LinearRegression简单分析氧化物数据
- 使用python抓取并分析数据-链家网(下)
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- Python数据分析基础模块:Anaconda的安装以及简单使用
- Python数据分析利器——numpy简单教学
- 【Python数据分析】简单爬虫,爬取知乎神回复
- python数据挖掘数据分析pandas的介绍及简单例子
- 数据抓取分析(python + mongodb)Python数据抓取分析
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
- Python数据可视化正态分布简单分析及实现代码