机器能做的事就别让人来做!

目标: 抓取特定微信公众号文章

思路:利用selenium模拟浏览器行为,进行抓取(理由:搜狗已将文章链接进行处理,且页面为动态生成)

框架:

步骤:

1、登录搜狗

a、找到登录按钮并点击

self.browser.find_element_by_id("loginbtn").click()

此时产生一个登录的iframe,其中还嵌套一个iframe,都是动态生成的,内嵌于该页面的另一个新的html页面,我们需要

定位到第二个iframe才能进行真正的登录操作

b、定位到登录界面的实际iframe

self.browser.switch_to.frame(0)

time.sleep(10)

self.browser.switch_to.frame("ptlogin_iframe") // ptlogin_iframe为实际登录界面的iframe

c、 实现qq快捷登录

利用qq实现快速登录,前提是你已登录自己的qq账号,然后在页面直接点击你的qq头像即可实现登录操作。当然,你也可以通过账号/密码实现登录。

self.browser.find_element_by_id("qlogin_list").find_element_by_xpath("a").click() // 找到你的qq头像对应的元素位置并点击

2、抓取文章

搜狗页面呈现方式:

抓取数据格式:

标题, 概要信息, 发布时间, 图片url, 文章实际url

通过审查元素,我们看一下每个文章在页面源码中的表现形式,如下图:

href链接到的是文章正文页,但是该链接并非文章的实际链接地址,因此我们需要点击该链接到文章正文页面获取其真实链接。

其他元数据信息则可由页面直接获取。具体获取方法,即通过find_element定位到相应元素,获取元素text信息,此处不再

赘述。

说明一下获取文章实际url,可通过点击文章标题或图片跳转到文章页面,此时会新产生一个窗口,我们需要切换到该窗

口,才能获取到当前的窗口URL,然后再切换回原来的窗口,继续下一个文章元数据的抓取过程,具体操作如下:

1 defget_target_url(self, no):2 """

3 get real url(without encryption) of target page4 :param no: NO.5 :return target_url:6 :Usage:7 """

8 box_a = self.get_box(no).find_element_by_xpath("div[@class='txt-box']//h4//a") #找到标题元素并点击

9 current_handle =self.browser.current_window_handle # 保留当前窗口句柄10 box_a.click()11 for handle inself.browser.window_handles:12 if handle ==current_handle:13 continue

14 else:15 # 切换到文章正文窗口,获取url后关闭,并回到主窗口16 self.browser.switch_to_window(handle)17 target_url =self.browser.current_url18 self.browser.close()19 self.browser.switch_to_window(current_handle)20 return target_url

3、抓取更多文章

初始页面默认呈现10篇文章,点击页面底部“查看更多”可获得更多文章,每次10篇,若到达最后,则不再出现“查看更多”。具体做法:

审查元素获取“查看更多”并点击,每个文章对应一个div,其ID形式如“sogou_vr_11002601_box_0”,末尾的0是编号,顺序递增,查看

更多后,可通过该ID值获取最新出现的文章。

1 defget_more(self):2 try:3 more = self.browser.find_element_by_class_name("p-more")4 if more.get_attribute("style") == "visibility: hidden;":5 returnFalse6 else:7 more.find_element_by_xpath("a").click()8 returnTrue9 exceptException, e:10 print e.message

get_more

############################OVER################################

转载请注明出处!!!

java 抓取搜狗微信_搜狗微信公众号文章抓取相关推荐

  1. python微信爬取教程_[python]微信公众号文章爬取

    [python]微信公众号文章爬取 需求 爬取一些微信公众号的文章 数据来源 1.搜狗微信搜索,可以搜索微信公众号文章,但只能显示该公众号最近十篇的文章 2.通过个人微信公众号中的素材管理,查看其他微 ...

  2. 微信公众号文章爬取方法整理

    微信公众号文章爬取方法整理 1.用python爬取 http://blog.csdn.net/d1240673769/article/details/75907152 实现方法:通过微信提供的公众号文 ...

  3. 微信读书是看公众号文章的另一种选择

    今天是第23个世界读书日,世界读书日全称为世界图书与版权日,推动更多的人去阅读和写作. 微信读书时基于微信关系链的官方阅读应用为用户推荐合适的书籍,并可查看微信好友的读书动态.与好友讨论正在阅读的书籍 ...

  4. 微信公众号开发——微信获取、操作公众号文章

    微信获取,操作公众号文章 项目地址:https://gitee.com/wrzhxy/wx_article 我以为微信支付和微信企业付款文档就够坑爹了,直到我遇到了微信获取公众号文章... 微信获取公 ...

  5. 搜狗微信公众号文章抓取

    机器能做的事就别让人来做! 目标: 抓取特定微信公众号文章 思路:利用selenium模拟浏览器行为,进行抓取(理由:搜狗已将文章链接进行处理,且页面为动态生成) 框架: 步骤: 1.登录搜狗 a.找 ...

  6. 关于微信公众号文章抓取

    今天公司要我抓取微信公众号文章,我百度了半天得到的方法有三种: 具体内容我就不复制了请去下面这个链接去看,写的挺好 微信公众号文章采集方案 在三者中我选择了比较稳妥的第二种:对手机微信进行中间人攻击 ...

  7. 使用WebCollector爬虫框架进行微信公众号文章爬取并持久化

    〇.Java爬虫框架有哪些? 1.nutch:Apache下开源爬虫项目,适合做搜索引擎,分布式爬虫只是其中一个功能,功能丰富,文档完整. 2.heritrix:比较成熟,用的人较多,有自己的web管 ...

  8. 微信公众号文章爬取下载各种格式

    微信公众号阅读成为许多人每天的日常习惯,相信在每天关注的微信公众号中,总会有一些作者在持续地输出优质内容. 这些内容也许是你所处领域的精华,也许其中的观点启人深思,也许是单纯地喜欢上了某个大V的文字. ...

  9. python3实现微信公众号文章爬取

    基于搜狗微信的文章爬取 前言:文章仅用于学习交流,不足之处欢迎小伙伴指正! 一.功能介绍: 已实现功能: 1.爬取搜狗微信上的分类一栏的所有事件及其他的所有标题事件和加载更多,返回文章链接与标题,并存 ...

最新文章

  1. Linux CENTOS7 Linux流量监控工具-iftop 安装过程以及示例!
  2. 使用球面目标自动标定雷达-相机外参
  3. win7中怎么创建宽带连接
  4. 李超:WebRTC传输与服务质量
  5. 苹果出5g手机吗_华为打响5G手机第一枪,苹果却扔出620亿“王炸”,任正非:榜样...
  6. springboot+jsp中文乱码_【spring 国际化】springMVC、springboot国际化处理详解
  7. 中国两轮车电子燃油喷射系统行业市场供需与战略研究报告
  8. dumpsys命令用法
  9. winform 右下角弹出小窗口
  10. windows杀进程
  11. tfidf原理及实现
  12. 如何用计算机制作思维导向图,mindmaster使用方法,手把手教你制作思维导图
  13. 心理学与生活 -人格与动机
  14. Py之lime:lime库的简介、安装、使用方法之详细攻略
  15. 因为星期三有计算机课的英语,34  (五年级上册)第二单元 我星期里的每天--英汉对...
  16. 读书笔记:大型网站技术架构-核心原理与案例分析
  17. 室内定位方案部署WIFI定位还是IBeacon定位-新导智能
  18. SparkGraphX快速入门
  19. k8s部署-49-k8s日志采集的解决方案思路梳理
  20. iOS学习笔记12—听筒和扬声器的转换

热门文章

  1. 【计算机毕业设计】基于微信小程序的图书馆座位预约系统
  2. H5微信中棋牌游戏域名防封解决方案
  3. ThinkPad E420/E520 Win10 开机慢的问题
  4. 行流 - 通用;仅使用库存接口开单 and 行流 - 通用;
  5. 计算机考试按脚本制作幻灯片,2018秋季【西南大学】[1055]《powerpoint多媒体课件制作》作业(参考答案)...
  6. 莱诺和柯南Excel甘特图
  7. 「产品读书」增长黑客:创业公司的用户与收入增长秘籍
  8. pyhton———使用urllib 下载文件~~过掉岁月过掉风
  9. matlab在光子晶体,利用平面波展开法在matlab中计算一维光子晶体的带隙结构
  10. 国子监祭酒是个什么官