用 Python 爬取 QQ 空间说说和相册

安装 selenium

selenium 是一个在浏览器中运行,以模拟用户操作浏览器的方式获取网页源码,使用 pip 安装 selenium 模块

pip install selenium

查看 chrome 浏览器版本并下载 对应的 chrome 浏览器驱动

在 http://npm.taobao.org/mirrors/chromedriver 网址中找到相同版本的 chrome 驱动,并放在 python 程序运行的同一个文件夹中

登陆

按 F12 检擦网页源代码,找到登录和密码的文本框,如下图所示

说说

def get_shuoshuo(driver):
    
    page = 1
    while True:
        # 下拉滚动条
        for j in range(1, 5):
            driver.execute_script("window.scrollBy(0,5000)")
            time.sleep(2)

        # 切换 frame
        driver.switch_to.frame(app_canvas_frame)
        # 构建 BeautifulSoup 对象
        bs = BeautifulSoup(driver.page_source.encode(GBK, ignore).decode(gbk))
        # 找到页面上的所有说说
        pres = bs.find_all(pre, class_=content)

        for pre in pres:
            shuoshuo = pre.text
            tx = pre.parent.parent.find(a, class_="c_tx c_tx3 goDetail")[title]
            print(tx + ":" + shuoshuo)

        # 页数判断
        page = page + 1
        maxPage = bs.find(a, title=末页).text

        if int(maxPage) < page:
            break

        driver.find_element_by_link_text(u下一页).click()
        # 回到主文档
        driver.switch_to.default_content()
        # 等待页面加载
        time.sleep(3)

相册

下载相册里面的照片需要 selenium 模块模拟鼠标一步步点击页面,先点击上方的相册按钮,进去就是多个相册的列表,下图是单个相册的超链接

在单个相册中点击照片,界面如下图

示例结果

总结

大家在看十几年前的说说和照片是不是感觉满满的黑历史快要溢出屏幕了。时光荏苒、岁月如梭,愿一切安好。

经验分享 程序员 微信小程序 职场和发展