使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据。但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命。于是乎想自动化这个过程。
我的需求主要是两点:1. 要求自动化程度高。最好有直接模拟浏览器鼠标和键盘动作的成熟接口,比如在文本框输入,选择下拉列表,单选框,复选框,点击按钮等。2. 不要求效率。因为我要的数据量相对来说很小。3. python下的框架。因为平时几乎主要用python。
我不太懂网站技术,和网站沾边的经验只有两个:开发过一个很简单安卓的客户端,用python的scrapy框架写过爬虫来自动爬取新闻。所以了解一些客户端和服务端基本的交互方式、了解如何分析网页源代码、了解xpath语法。
刚开始针对这个问题,我连搜啥都不太清楚。知乎的这篇文章提供了很多有用信息:“Python 爬虫如何获取 JS 生成的 URL 和网页内容?” 顺着它我又权衡了很多方法,最后选择了Selenium。主要优点是学习成本极小,代码实现快。缺点是爬取效率低。想要高效率的朋友,就要花一些时间学习更复杂的工具包了。
网站技术
想要自动爬取网页,得了解一些基本的知识,这样做起来更快。这里简单介绍一下相关知识。
1. Request/response
request是客户端向服务端发起请求。输入一个网址对应一个request动作,这是最直观的。爬取静态网页的内容,只要知道网址就可以了。但是现在的网页很多都是动态的,鼠标指向或者点击网页中某些元素也会触发request动作,从而使网页动态更新
使用Selenium模拟浏览器,实现自动爬取数据相关推荐
- Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频
1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...
- python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- Python+selenium+firefox登录微博并爬取数据(2)
上次写到安装完成环境,并且成功访问到微博首页(未登录状态).后来发现新浪的登录机制太繁琐,所以放弃selenium登录,转向使用新浪官方Api 爬取数据.但是,写完之后才发现,调用接口也有限制.没办法 ...
- scrapy模拟浏览器翻页爬取智联
智联爬取中,页码的数字和url是不匹配的,因此盲目的拼接url会造成错误,因此可以采用模拟浏览器爬取网页 要模拟浏览器需要知道scrapy流程,简图如下: 这里只是简单的写一些伪码,设计的数据清洗部分 ...
- Python+selenium+firefox模拟登录微博并爬取数据(1
1:环境python3.5,最新 firefox,selenium-3.14.0. 本来准备用无界面的,但是感觉效果不好看出来所以先用有界面的浏览器来做.分几次来慢慢写.这节先配置好环境. 2:安装: ...
- 【selenium爬取】最新版可用某网职位爬取数据
文章目录 一.某网职位爬取 1.1 selenium的使用 1,2 开始爬取 一.某网职位爬取 共计8000组数据,需要数据和代码的,请到以下链接获取: https://download.csdn.n ...
- python 定时自动爬取_python怎么定时爬取数据及将数据以邮件发送
定时功能,即程序可以根据我们设定的时间自动爬取数据: 通知功能,即程序可以把爬取到的数据结果以邮件的形式自动发送到我们的邮箱. 程序分成三个功能块:[爬虫]+[邮件]+[定时]. 对爬虫部分,主要是获 ...
- python 爬虫动态网页的区别_Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取...
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食
1 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可以用Selenium来驱动浏览器模拟点击来爬取淘宝的信息.这样我们只要关系操 ...
最新文章
- Oracle正则表达式匹配中文的问题
- c语言对齐方式研究笔记
- 如何分析request download在R3AR3显示成功执行,但是对应material没有生成的问题
- 【Flink】Flink Distributed Cache 分布式缓存
- 三分钟带你看懂prototype原型——ES6进阶
- Google Maps API v3:如何删除所有标记?
- 回馈顾客, 活动搞起 --- 策略模式
- 夏普MAX3101N复印故障
- FTP服务器的上传文件端口为,FTP服务器上传文件时的端口
- ins无法发帖_instagram发完图片就没了_ins发不了照片_解决方法
- Win11 22H2四个你不知道的隐藏功能
- 笔记本加装固态硬盘的问题
- Java多线程-Java多线程实现
- 安卓bmi项目_Android|BMI体质计算器实现(附测试源码)
- 最新的IP归属地数据库-最新IP地址数据库
- python之面向对象编程
- Bat文件批量处理----DOS命令
- 雅思考试流程与应试注意事项
- Vector CANoe 更改帧的调度表的顺序
- 三种基于稀疏成像的RCS测量算法思想