列表说说-豆豆语录迷
返回
豆豆语录迷
菜单
造句大全 组词大全 句子大全 个性签名 心情说说 经典语录 换背景

列表说说

来源:网络 发布时间:2019-11-06 点击:
心情说说 > 说说大全 > > 列表说说
《列表说说》正文内容

列表说说

可能网速有点卡

在空间最上方,右边(退出旁边)有个齿轮状的东西,空间设置,同步设置!自己空间里有个设置,同步更新到别人空间,或只更新到指定等。现在不方便,如果你自己找不到,我晚上登空间给你具体方法!

你好。
以表格为容器,装载着文字或图表的一种形式,叫列表。

前几天刚刚爬完了一百多个好友的总计5万条说说,说一下自己的思路。QQ空间的空间动态都是由JavaScript控制的(电脑和手机触屏版皆是如此),自己便选择了Selenium作为对数据获取的工具。总的工具:Python+Selenium+Firefox+MongoDB总的过程为:1、从QQ邮箱中获取好友QQ号;2、访问好友QQ空间的说说分页;3、访问并获取说说数据;最开始想的是从QQ空间的个人中心的好友动态中逐条获取好友的动态,但折腾了很久发现,无论是电脑版还是触屏版,都有一个下翻加载,再是点击加载的Ajax,能力低下,百度谷歌了各种方法,皆无法下拉加载数据。此路只好作罢。后来从一篇《使用Python模拟登录QQ邮箱获取QQ好友列表》的文章中想到,先获取好友的QQ号,然后再把QQ号填充到QQ空间的URL中,对好友QQ空间进行访问。1、从QQ邮箱中获取好友QQ号QQ邮箱的通讯录中有一个导出通讯录的功能,可以选择CSV格式,方便使用Python进行读取操作。打开之后是这个样子的(一小部分):处理之后放入列表之中就成这样了:然后,进行正题:分析QQ空间的网页可知:1、好友QQ空间的说说页面URL为:http://user.qzone.qq.com/{QQ号}/3112、说说列表的分页亦由javascript控制:3、正常访问的页面存在id为'QM_OwnerInfo_Icon'的元素;4、说说的内容存在于另一个iframe中;所以,爬取说说的主体部分为:1、GET空间说说页面的URL:driver.get('http://user.qzone.qq.com/{}/311'.format(qq)) 2、判断页面中是否存在登录框,如果存在则执行登录操作:try: driver.find_element_by_id('login_div') a = True except: a = False if a == True: 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({QQ号}) driver.find_element_by_id('p').clear() driver.find_element_by_id('p').send_keys({QQ密码}) driver.find_element_by_id('login_button').click() 2、在登录QQ空间,进入好友空间后,判断其是否可访问,如果可访问,则爬取第一页并写入数据库(有些拒绝访问或是要求回答问题,在此只爬取能够访问到的空间说说):try: driver.find_element_by_id('QM_OwnerInfo_Icon') b = True except: b = False if b == True: driver.switch_to.frame('app_canvas_frame') content = driver.find_elements_by_css_selector('.content') stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail') for con,sti in zip(content,stime): data = { 'qq':qq, 'time':sti.text, 'shuos':con.text } print(data) qzone_shuos.insert_one(data) 3、有些好友说说发表的少,只有第一页的内容,所以判断页面是否有第二页的内容,如果有,继续爬取:try: driver.find_element_by_link_text('下一页') d = True except: d = False if b == True: contents = driver.find_elements_by_css_selector('.content') times = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail') for c,t in zip(contents,times): datas = { 'qq':qq, 'time':t.text, 'shuos':c.text } print(datas) qzone_shuos.insert_one(datas) 4、使用多线程或多进程或循环或遍历,把QQ号列表中的QQ作为参数填充到爬取的主函数中。使用多进程模块multiprocessing的Pool类老是在第一个QQ号爬取完之后报错,折腾不来,又有大把的时间,索性直接for循环遍历了。最后对爬取的数据进行了一些简单的处理和统计:今年七个月每月的说说发表量今年七个月说说发表量前20嗯,代码挺渣的,将就着看吧= =!!!

上一篇:不靠谱说说
下一篇:辣条的说说

相关说说大全

推荐说说大全

热门说说大全

  • 家乡的说说,赞美家乡的经典说说,家乡风景短语句子
  • 说说
  • 心情不好的说说
  • 祝自己生日快乐的说说
  • 伤心的句子说说心情
  • 心情低落说说发朋友圈
  • 压抑憋屈的心情说说
  • 伤感说说
  • 最新说说大全

  • 两姐妹说说,亲姐妹说说,姐弟照片发说说的话
  • 顾虑说说
  • 关于作业的说说,一堆作业的图片唯美,形容作业多的幽默句子
  • 长痘了的说说
  • 人累了和心累了的说说
  • 进货说说,去进货发朋友圈的句子,进货的心情说说
  • 性人说说
  • 洗礼的说说