我的第一个Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况

参考资料:Python技术之巅

可能要pip install lxml 等库

本脚本基于python3运行,脚本路径D:\python\shuoshuo.py ,以下是脚本内容

----------------------------------------------------------------------------------------

#coding:utf-8

import time
from selenium import webdriver
from lxml import etree

#这里一定要设置编码格式,防止后面写入文件时报错
import sys
#reload(sys)
#sys.setdefaultencoding( "utf-8" )
#python3默认系统编码就是utf-8

friend=sys.argv[1] # 朋友的QQ号,朋友的空间要求允许你能访问
user=sys.argv[2]   # 你的QQ号
pw=sys.argv[3]     # 你的QQ密码

#获取浏览器驱动
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
#driver = webdriver.Chrome()
# 浏览器窗口最大化
#driver.maximize_window()

# 浏览器地址定向为qq登陆页面
driver.get("http://i.qq.com")

# 所以这里需要选中一下frame,否则找不到下面需要的网页元素
driver.switch_to.frame("login_frame")

# 自动点击账号登陆方式
driver.find_element_by_id("switcher_plogin").click()

# 账号输入框输入已知qq账号
driver.find_element_by_id("u").send_keys(user)

# 密码框输入已知密码
driver.find_element_by_id("p").send_keys(pw)

# 自动点击登陆按钮
driver.find_element_by_id("login_button").click()

# 让webdriver操纵当前页
driver.switch_to.default_content()

# 跳到说说的url, friend你可以任意改成你想访问的空间
driver.get("http://user.qzone.qq.com/" + friend + "/311")

next_num = 0  # 初始“下一页”的id
while True:

        # 下拉滚动条,使浏览器加载出动态加载的内容,
        # 我这里是从1开始到6结束 分5 次加载完每页数据
        for i in range(1,6):
            height = 20000*i#每次滑动20000像素
            strWord = "window.scrollBy(0,"+str(height)+")"
            driver.execute_script(strWord)
            time.sleep(4)

        # 很多时候网页由多个或