本篇文章不是入门帖,需要对python和爬虫领域有所了解。

爬虫又是另外一个领域,涉及的知识点比较多,不仅要熟悉web开发,有时候还涉及机器学习等知识,不过在python里一切变的简单,有许多第三方库来帮助我们实现。使用python编写爬虫首先要选择合适的抓取模块,最简单的功能就是能发送和处理请求, 下面就介绍几个常用的抓取的方式。

一、python 自带的urlib2和urlib或者第三方模块requests

这种方案适合简单的页面爬虫,比如爬取博客园推荐文章。

urllib2和urllib是python自带模块可用来发送处理请求,虽然比较灵活但API易用性较差,所以一般都要进行二次封装,我曾经也进行过封装,最后发现自己封装出来的模块无限趋近于非常成熟的requests库,所以还是直接使用requests吧,当然requests只发送和接受请求,对于页面分析还要配合lxml或beautifulsoup等第三方库进行。高级点的爬虫不仅仅是发送和处理请求,还需要处理异常,请求速度控制等问题,这就需要我们写额外的代码去控制,当然我们可以自己写只是时间问题,但完全没有必要,接下来我会介绍第二种方案。

二、scrapy框架

scrapy是爬虫领取的佼佼者,目前我做的项目无论复杂与否,都采用scrapy进行,对于请求调度,异常处理都已经封装好了,而且有第三方的scrapy-redis还可以支持分布式,我们把关注点放在更重要的页面分析和规则编写上,代码可以参考我github上的例子。

三、python selenium

这种方式我称为终极必杀器,一般是实在没办法的时候才用,以前我在利用某家搜索引擎抓取文章时,该搜索引擎采用的比较高难度的反爬虫机制而且不断变化让人找不到规律,最典型的特点就是cookie会随机隐藏到某个页面js和图片中,解决方案就是模拟浏览器的行为加载所有js等静态资源文件,如果自己写个浏览器取解析太扯蛋了,如果chrome浏览器能开放接口,通过chrome的加载方式获取页面的内容就好了,这就是selenium了,selenium加上随机等待时间可以模拟出和人非常类似的操作行为,缺点就是速度较慢,但是一般爬虫对抓取速度要求不高,重要的是稳定性,这种方式对于抓取反爬虫机制做的好的大型网站比较适用。

总结,对于大部分爬虫需求直接用scrapy解决,如果解决不了再采用第一种或第三种方案,就这么简单。

python爬虫用到的技术_python爬虫技术的选择相关推荐

  1. python爬虫源码怎么使用_Python爬虫具体应该怎么使用?

    1.首先,什么时候我们需要爬虫呢? 当我们需要某网站上的海量数据的时候,会发现,如果人工去把几百页,每页几十条到几百条的数据一条一条地复制下来,就太费时费力了,甚至根本就不可能.但是你做研究却需要这样 ...

  2. python爬虫用多线程还是多进程_python爬虫之多线程、多进程爬虫

    多线程对爬虫的效率提高是非凡的,当我们使用python的多线程有几点是需要我们知道的: countdown是一个计数的方法,正常执行它,我们一般使用countdown(10),就可以达到执行的目的,当 ...

  3. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  4. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  5. python爬虫 知乎荐书_python爬虫必看书籍推荐

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫 ...

  6. python的scrapy框架的安装_Python爬虫基础(四)--Scrapy框架的安装及介绍

    Scrapy框架的介绍 安装: pip3 install Scrapy 安装测试: cmd命令行界面,输入:scrapy -h 框架安装完成: scrapy框架: 分为五个模块+两个中间件(5+2结构 ...

  7. python爬虫十二种方法_Python爬虫的N种姿势

    问题的由来 前几天,在微信公众号(Python爬虫及算法)上有个人问了笔者一个问题,如何利用爬虫来实现如下的需求,需要爬取的网页如下(网址为:https://www.wikidata.org/w/in ...

  8. python爬虫都需要什么手续_Python爬虫丨爬虫之前需要什么准备

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:村雨遥 ( 想要学习Python?Python学习交流 ...

  9. python爬取网页数据流程_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  10. python爬虫资源路径报错_python爬虫

    一.网络爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 例如,百度.google搜索某关键字时,就是爬取整个互联网上的相关资源,给呈现出来. 实际爬 ...

最新文章

  1. codeforces1700数学:E2. Close Tuples (hard version)[组合计数 逆向统计] D. Circle Game[对称博弈考虑对称状态的胜负]
  2. 打开完成查看的CAD图纸如何一键进行打印?
  3. Python-5-字符串方法
  4. 代码详细解析简单常用DOS命令 java会用这些就够了!
  5. android 自定义相机源码,Android 自定义相机及分析源码
  6. 辨异 —— 有两人生日在同一天、只有两人生日在同一天
  7. (8). 使用JPA保存数据【从零开始学Spring Boot】
  8. Wherehows项目部署文档
  9. 电脑网易云音乐,我放弃了QQ音乐和网易云音乐,最终还是选择了Apple Music
  10. 小米路由器3G刷入OpenWrt
  11. python电影名称词云_Python爬取最近上映的电影评论并生成词云——误杀
  12. wps无法连接到计算机,WPS无法连接网络怎么解决-解决wps不能连接网络的方法 - 河东软件园...
  13. 大一用c++写的一个走迷宫打怪游戏-galaxy
  14. 云栖大会“云计算加速开源创新论坛” 揭晓 2022 年度开源人物
  15. 计算机打开文件的原理,电脑删除文件是怎么实现的?它的原理是什么?
  16. 89c51的万年历c语言,用AT89C51与DS1302做的万年历c语言编程
  17. HTML-图文排版如何以代码实现
  18. APNS部署教程2(证书配置)
  19. 让IIS服务器支持PHP
  20. AC695x学习笔记(3):按键

热门文章

  1. 网络安全 - 一名合格的Web安全工程师之成长路径
  2. matlab地球月球卫星关系,Matlab 卫星绕地球旋转演示动画
  3. 完美解决django 在迁移数据库的时候出现的1146错误
  4. J2EE三层架构简介
  5. react如何获取option的下标和值_select选中获取索引三种写法
  6. Linux基础系列—Linux体系结构和Linux内核结构
  7. CUDA out of memory怎么解决
  8. 简述MACD指标以及它的组成MACD、MACDsignal和MACDhist
  9. 局域网内通信和局域网与局域网间通信
  10. 3GPP协议 25.105