您的位置:首页 > 编程语言 > Python开发

python 抓取腾讯微博数据并做简单的分析

2013-06-15 17:22 856 查看
利用python去读取腾讯微博中某个人的数据,统计和他相关的一些连接,并对每个打印每个连接的数据,本人采用的python版本为3.3.

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