自动化抓取stackoverflow问题列表

最近在关注stackoverflow上的某一类问题, 所以想用程序帮我做监控,自动打开浏览器,搜索指定关键词,然后把前30个问题列表保存或者发给我。
源代码可以从github获取,以下是我的开发过程.

系统环境

  • windows 10
  • python 3.0
  • clicknium

安装clicknium vscode扩展和python module,参照getting started.

开发思路

  • 自动打开浏览器,返回tab对象
tab = cc.edge.open("www.stackoverflow.com")
  • 输入关键字,发送{ENTER}快捷键进行搜索
tab.find_element(locator.stackoverflow.text_q).set_text(word)
tab.find_element(locator.stackoverflow.text_q).send_hotkey('{ENTER}')
  • 搜索之前,可能会需要进行人机验证,用如下代码进行判断和点击
elem = tab.wait_appear(locator.stackoverflow.human_verification_div, wait_timeout=5)
if elem != None:elem.click()
  • 点击’Newest’,根据时间来排序

  • 利用clicknium的获取相似元素,获取每个问题的标题,vote数量,内容,最后更新时间,以及问题的url

    while catch_count < 30:sleep(1)elems_title = tab.find_elements(locator.stackoverflow.a_title)elems_vote = tab.find_elements(locator.stackoverflow.span_vote)elems_content = tab.find_elements(locator.stackoverflow.div_content)elems_time = tab.find_elements(locator.stackoverflow.span_time)for i in range(len(elems_title)):url = "https://www.stackoverflow.com" + elems_title[i].get_property('href')item = {'Keyword':word, 'Title': elems_title[i].get_text(), 'Content': elems_content[i].get_text(),'Time': elems_time[i].get_text(),'Vote': elems_vote[i].get_text(),'Url':url}print(item)catch_count += 1if tab.is_existing(locator.stackoverflow.a_next):tab.find_element(locator.stackoverflow.a_next).click()else:break

以下是问题标题链接的locator

点击’Validate’是可以验证能匹配到单页15个元素的, 通过find_elements1可以一次性获取到所有的元素列表,然后通过get_text()获取文本,针对链接,还可以通过get_property('href') 来获取属性href。

自动化抓取stackoverflow问题列表相关推荐

  1. 利用urllib3 抓取博客列表

    利用urllib3 抓取博客列表 分析页面代码 分析正则表达式 完整代码 分析页面代码 从这段代码中可以找到很多规律,例如,每条博客的所有信息都包含在一个 <div> 节点中,这个< ...

  2. java+selenium自动化抓取51la数据

    java+selenium自动化抓取51la数据 初衷 环境依赖 demo上代码 效果来个马赛克 如果觉得写的不错或者想了解更多,欢迎收藏和关注~~ 初衷 前端埋点51la,进行网站统计.51la没有 ...

  3. 简历自动化抓取,一键get百份求职简历

    这次我们就来聊一聊实用性比较高的爬虫案例:简历自动化抓取,一键get百份求职简历. 本次爬取非常顺利,本以为会遇到几个反爬措施,除了定位遇到几个小坑之外,其余地方皆是一帆风顺,值得提一下的地方主要就是 ...

  4. 自动抓取QQ好友列表?Windows UIA教你轻松实现

    目录:导读 引言 选择Windows UIA框架进行自动化测试的原因 查找窗口 读取QQ软件的好友列表 结语 引言 每个使用QQ的人都有自己的好友列表,但是如果你想要查看所有好友信息,手动一个个点击会 ...

  5. python爬虫(抓取百度新闻列表)

    一.python请求要抓取的url页面 要抓取的url http://news.baidu.com/ ,先python模拟请求该url #!/usr/bin/python # -*- coding:u ...

  6. 使用fiddler自动化抓取微信公众号文章的点赞与阅读数

    本文章为lonter首创,只发布在csdn平台,严禁转载 这几天接到任务,需要开发一个微信榜单的功能,因此需要采集微信公众号文章的阅读数,点赞数和评论数,榜单内的微信公众号有一百多个,每个月出一次榜单 ...

  7. 【Python】抓取淘宝列表页信息

    分析每页的url特征 打开淘宝网,搜索 手机 第一页:https://s.taobao.com/search?q=%E6%89%8B%E6%9C%BA&imgfile=&commend ...

  8. 【爬虫】抓取京东商品列表具体商品的各种评论数量-2019年6月可用

    本来只是想简单地抓个好评数,在一开始的搜索结果页面上 然后发现抓不到,用lxml里面etree解析的是空的 问题就变烦了,问了一下前同事,告诉我说是异步渲染的 在这里找到了所有有关评论的请求: 请求得 ...

  9. app小程序手机端Python爬虫实战01-Uiautomator2自动化抓取工具介绍

    作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

最新文章

  1. SSE3和SSSE3 Intrinsics各函数介绍
  2. 初次遇见NLP:从词向量到BERT
  3. lvs和keepalives
  4. 4:springApplication.run 原理
  5. 基于vue,elementui的注册页面源码
  6. 电脑屏保海底世界_水下栖息地:人类能否在海洋中居住?真的有人住在海底吗?...
  7. 深入理解cache对写好代码至关重要
  8. 为什么注册页面刷新一次,数据库就多了一条数据?????
  9. ROS功能包或其中一部分找不到的奇葩问题及对应解决方案
  10. init函数的注意事项和细节
  11. 0基础入门VTD-实操静态道路建模1
  12. word文档怎样删除最后一页空白页
  13. 解压技巧: iPhone自带的解压缩功能好强
  14. 货郎问题java_货郎问题
  15. 论文阅读:PVO: Panoptic Visual Odometry
  16. halcon脚本-条形码识别【附源码】
  17. 内存池简单实现(一)
  18. is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......
  19. fluent python 2nd edition_fluent python读书笔记2.2节
  20. 员工签到系统说明文档

热门文章

  1. 黄金期货的交易原则有哪些?
  2. buddypress主题_如何在WordPress 3.0中启用BuddyPress
  3. 《监控视频异常检测: 综述》王志国, 章毓晋笔记
  4. 基于labview的示波器自动控制软件
  5. 针对乐视网的主页无法打开的解决办法
  6. 16 | 网络优化(中):复杂多变的移动网络该如何优化?
  7. JavaScript之事件触发on和事件监听addEvent及addEventListener的区别和作用
  8. @分词算法FMM(正向最大匹配)
  9. Hadoop将过时了?
  10. TOJ 3498.Differences