使用模拟器下载好友QQ空间说说

使用selenium库模拟浏览器登陆,由于selenium不支持phantomJS,所以本文使用google浏览器。首先用anaconda安装好selenium库,然后下载chromedriver复制到python路径中。打开一个有空间访问权限的好友空间,找到其说说页,使用webdrive请求网页。

driver = webdriver.Chrome()

driver.get('https://user.qzone.qq.com/qq号码/311')#qq号码为自己的qq号

运行后网页会跳到一个认证页面,需要输入账号和密码

driver.switch_to_frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys('账号')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('密码')
driver.find_element_by_id('login_button').click()
time.sleep(3)

之后页面会跳转到好友的qq空间说说页面,使用select选择器提取说说内容,在结尾加入$符号,方便之后的分词,并保存在shuoshuo.txt文件中

while next_page:
    try:
        contents = driver.find_elements_by_css_selector('.content')
        for content in contents:
            print(content.text)
            with open('shuoshuo.txt','a+') as f:
                f.write(content.text)
                f.write('$')

        next_page = driver.find_element_by_link_text(u'下一页')
        page = page + 1
        print(u'正在抓取第{}页面内容······',format(page))
        next_page.click()

        time.sleep(3)

之后使用jieba库对好友说说进行分词,首先打开文件,然后提取每行数据

file = open('shuoshuo.txt','r')

content = file.readlines()
word_dict = {}
s = ''

for ct in content:
    list1 = ct.split('$')
    for cont in list1:
        s=s+cont+','

然后jieba进行关键词提取,并统计权重,然后保存下来

cut1 = jieba.analyse.extract_tags(s,topK = 2000,withWeight=True)
with open('shuoshuo_keyword.txt','a+') as f1:
    for item in cut1:
        f1.write(item[0]+' '+str(item[1])+ '\n')

之后使用wordcloud进行关键词的可视化处理

file = open('e:\project\pachong\shuoshuo_keyword.txt','r')
for line in file.readlines():
    lis1.append(line.split()[0])
    lis2.append(float(line.split()[1]))

text = dict(zip(lis1,lis2))
back_coloring = imread(r'背景图片.png')
wc = WordCloud( font_path=r'c:\Windows\Fonts\STZHONGS.TTF',#设置字体
                background_color="gray", #背景颜色
                max_words=300,# 词云显示的最大词数
                mask=back_coloring,#设置背景图片
                max_font_size=100,
                # min_font_size=10,
                random_state=50,
                scale=3
                )
wc.fit_words(text)
image_colors = ImageColorGenerator(back_coloring)

plt.figure()
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
plt.show()
wc.to_file("词云.png")
最后为生成的结果展示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值