使用python+selenium 爬取留言板信息

一、工作环境准备:
Python 2.7,selenium(可以pip安装),Chrome(浏览器插件我用的是谷歌,火狐也有相应的插件)
二、登录(前面说过了就不详说了)
不过这次是把它给封装好了的,首先是登录,这个我更改了访问的url,到时候可以直接进去访问好友空间,然后到留言板界面。

使用python+selenium 爬取留言板信息_第1张图片
使用python+selenium 爬取留言板信息_第2张图片
登录.png
def qz_login(qq):
    driver.get('https://user.qzone.qq.com/{}'.format(qq))
    time.sleep(5)
    try:
        driver.find_element_by_id('login_div')
        a = True
    except Exception, e:
        a = False
    if a==True:
        driver.switch_to_frame('login_frame')
        driver.find_element_by_id('img_out_***').click()#***本地常用登录QQ号
        time.sleep(3)
        print 'loading...'
        driver.implicitly_wait(3)

三、抓取好友留言板:
我是从

这里的留言板作为入口的,


使用python+selenium 爬取留言板信息_第3张图片

留言板链接

点击这个留言板就到了留言板这里,


使用python+selenium 爬取留言板信息_第4张图片

留言板

你会发现留言板每一页的留言都在li里面,在主页到留言板界面的,拿到每一个留言,然后就写入到本地TXT文本,


def logToFile(content,name='FileY.txt'):
    f = open(name,'a+')
    try:
        print content
        f.write(content+'\n')
    except Exception, e:
        print 'Exception:',str(e)
    finally:
        f.close()

def get_message():
    while True:
        try:
            driver.implicitly_wait(3)
            driver.find_element_by_link_text('留言板').click()
            break
        except Exception, e:
            print e
            driver.save_screenshot(u'D:\\正在登陆.png')
            time.sleep(5)
    driver.implicitly_wait(3)
    time.sleep(5)
    driver.switch_to_frame('tgb')
# 好友留言板,页数是自己手动输入的
def getMessData(npage):
    get_message()
    global driver
    num = 1
    while (num

现在再调用函数,一切就OK啦。。。

if __name__ == '__main__':
   qz_login('***')#***-好友QQ号
   getMessData(***)#***留言板的页数

现在一切都完了哈,是不是很简单呢,最后最后,很重要的,一点要关闭浏览器。不然电脑会很卡的。

driver.close()
driver.quit()

你可能感兴趣的:(使用python+selenium 爬取留言板信息)