按照网络爬虫的的思路:

#mermaid-svg-YOkYst4FalQf6wUn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YOkYst4FalQf6wUn .error-icon{fill:#552222;}#mermaid-svg-YOkYst4FalQf6wUn .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YOkYst4FalQf6wUn .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-YOkYst4FalQf6wUn .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YOkYst4FalQf6wUn .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YOkYst4FalQf6wUn .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YOkYst4FalQf6wUn .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YOkYst4FalQf6wUn .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YOkYst4FalQf6wUn .marker.cross{stroke:#333333;}#mermaid-svg-YOkYst4FalQf6wUn svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YOkYst4FalQf6wUn .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YOkYst4FalQf6wUn .cluster-label text{fill:#333;}#mermaid-svg-YOkYst4FalQf6wUn .cluster-label span{color:#333;}#mermaid-svg-YOkYst4FalQf6wUn .label text,#mermaid-svg-YOkYst4FalQf6wUn span{fill:#333;color:#333;}#mermaid-svg-YOkYst4FalQf6wUn .node rect,#mermaid-svg-YOkYst4FalQf6wUn .node circle,#mermaid-svg-YOkYst4FalQf6wUn .node ellipse,#mermaid-svg-YOkYst4FalQf6wUn .node polygon,#mermaid-svg-YOkYst4FalQf6wUn .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YOkYst4FalQf6wUn .node .label{text-align:center;}#mermaid-svg-YOkYst4FalQf6wUn .node.clickable{cursor:pointer;}#mermaid-svg-YOkYst4FalQf6wUn .arrowheadPath{fill:#333333;}#mermaid-svg-YOkYst4FalQf6wUn .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YOkYst4FalQf6wUn .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YOkYst4FalQf6wUn .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-YOkYst4FalQf6wUn .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-YOkYst4FalQf6wUn .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YOkYst4FalQf6wUn .cluster text{fill:#333;}#mermaid-svg-YOkYst4FalQf6wUn .cluster span{color:#333;}#mermaid-svg-YOkYst4FalQf6wUn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YOkYst4FalQf6wUn :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

页面下载
页面解析
数据存储

将工具按照以上分类说明,按照学习路线顺序给出参考文章

目录

  • 一、页面下载器
  • 二、页面解析器
  • 三、数据存储
  • 四、其他工具
  • 五、关于xpath练习

一、页面下载器

  1. requests(必学)

    1. python爬虫入门requests模块
    2. Python爬虫:requests库基本使用
    3. Python爬虫:使用requests库下载大文件
    4. Python爬虫:requests多进程爬取猫眼电影榜单
    5. requests InsecureRequestWarning: Unverified HTTPS request is being made.
  2. scrapy

    1. Python网络爬虫之scrapy框架
    2. scrapy学习
    3. Python爬虫:关于scrapy模块的请求头
    4. Python爬虫:scrapy框架请求参数meta、headers、cookies一探究竟
    5. Python爬虫:scrapy辅助功能实用函数
  3. selenium+chrome + PhantomJS(抓取动态网页,不推荐)

    1. mac下安装selenium+phantomjs+chromedriver
    2. Python爬虫:selenium模块基本使用
    3. Python爬虫selenium模块
    4. Python爬虫:selenium和Chrome无头浏览器抓取烯牛数据动态网页
    5. Python爬虫:利用selenium爬取淘宝商品信息
    6. Python爬虫:selenium使用chrome和PhantomJS实用参数
  4. Splash(抓取动态网页,推荐)

    1. Python爬虫:splash的安装与简单示例
    2. Python爬虫:splash+requests简单示例
    3. Python爬虫:scrapy利用splash爬取动态网页

总结:
对于下载器而言,python自带的urllib就不要花时间去学了,学了就忘,直接requests能满足大部分测试+抓取需求,进阶工程化scrapy,动态网页优先找API接口,如果有简单加密就破解,实在困难就使用splash渲染

二、页面解析器

  1. BeautifulSoup(入门级)

    1. Python爬虫入门BeautifulSoup模块
  2. pyquery (类似jQuery)

    1. Python爬虫:pyquery模块解析网页
  3. lxml

    1. Python爬虫:使用lxml解析网页内容
  4. parsel

    1. Extract text using CSS or XPath selectors
  5. scrapy的Selector (强烈推荐, 比较高级的封装,基于parsel)

    1. 选择器(Selectors)
    2. python爬虫:scrapy框架xpath和css选择器语法

总结:
其实解析器学习一个就够了,其他都不用学,很多培训会教你从上到下的学习,我不是很推荐,直接学习scrapy的Selector 就行,简单、直接、高效

三、数据存储

  1. txt文本

    • Python全栈之路:文件file常用操作
  2. csv文件
    • python读取写入csv文件
  3. sqlite3 (python自带)
    • Python编程:使用数据库sqlite3
  4. MySQL
    • SQL:pymysql模块读写mysql数据
  5. MongoDB
    • Python编程:mongodb的基本增删改查操作
  6. Redis
    • Python编程:redis缓存数据库
    • python爬虫:scrapy-redis实现分布式爬虫

总结:
数据存储没有什么可深究的,按照业务需求来就行,一般快速测试使用MongoDB,业务使用MySQL

四、其他工具

  1. execjs :执行js
    Python爬虫:execjs在python中运行javascript代码

  2. pyv8: 执行js
    mac安装pyv8模块-JavaScript翻译成python

  3. html5lib
    1. Python爬虫:scrapy利用html5lib解析不规范的html文本

五、关于xpath练习

本人的一个开源项目:PageParser
https://github.com/mouday/PageParser
用于解析网页,最终实现6行代码写爬虫,可以贡献代码,顺便练习网页解析的能力

Python爬虫:常用的爬虫工具汇总相关推荐

  1. Python爬虫常用的爬虫注意事项及技巧

    Python爬虫常用的爬虫技巧 1.基本抓取网页 2.使用代理IP 3.Cookies处理 4.伪装成浏览器 5.页面解析 6.验证码的处理 7.gzip压缩 8.多线程并发抓取 urllib库为例进 ...

  2. Python中常用的数据分析工具(模块)有哪些?

    本期Python培训分享:Python中常用的数据分析工具(模块)有哪些?Python本身的数据分析功能并不强,需要安装一些第三方的扩展库来增强它的能力.我们课程用到的库包括NumPy.Pandas. ...

  3. 简谈-Python一些常用的爬虫技巧

    第一种:基本的网页抓取 get方法 import urllib2url = "链接response = urllib2.urlopen(url)print response.read() p ...

  4. Linux常用性能分析工具汇总

    文章目录 性能分析工具 top pstree mpstat vmstat pidstat perf proc tcpdump bcc工具箱 cachestat cachetop memleak fil ...

  5. 常用软件自动化测试工具汇总

    话说自动化测试方面的工具还是非常多的,不可能也没有必要查看所有的测试工具,个人觉得当学习众多同类知识或相关主题时,分几步走: 1. 学习所有同类知识的共同理论.原理部分[此为共性] 2. 学习所有同类 ...

  6. 腾讯优测干货精选| 安卓开发新技能Get -常用必备小工具汇总

    文/腾讯公司 陈江峰 优测小优有话说: 移动研发及测试干货×××?腾讯优测-优社区你值得拥有~ 开发同学们都知道,安卓开发路上会碰到很多艰难险阻,一不小心就被KO.这时候,没有新技能傍身怎么行?今天我 ...

  7. 常用的编程工具(汇总贴)

    C/C++ 常用编程工具 下载地址: https://download.csdn.net/download/qq_42542620/12787822 1.codeblocks Code:blocks( ...

  8. kali常用的软件包工具汇总

    安装命令: sudo apt-get 软件名 软件包: 软件名 功能 gdebi 图形化安装软件 ibus / ibus-pinyin 输入法 flashplugin-nonfree flash插件( ...

  9. centos系统常用的小工具汇总

    1.net-tools yum install net-tools netstat -ntlp:列出所有在使用的端口 2.lrzsz yum -y install lrzsz 可以使用rz上传文件:s ...

  10. Python学习三: 爬虫高级技巧 与 模拟实战练习

    三大爬虫技巧 许多网站针对爬虫的访问都设置了一定的障碍,通过这三步技巧,轻松绕过部分的反爬虫限制. (1)设置程序休止时间 import time import random# 休止睡眠 1 秒 这里 ...

最新文章

  1. Objective-C(十八、谓语使用及实例说明)——iOS开发基础
  2. 【微信开发】微信公众号开发 之 编辑模式使用
  3. Goland安装-工欲善其事必先利其器
  4. heka 输出到mysql_用php与mysql的电子贺卡程序
  5. 2Sigma OA prepare: Longest Chain
  6. 尚硅谷微服务分布式电商项目《谷粒商城》基础篇学习总结
  7. 继电器触点RC吸收电路
  8. E: The repository ‘http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu bionic Release‘ does no
  9. ip地址为61.179.150.39/28,问其子网号为多少,广播号为多少,可用ip地址范围是多少
  10. 稳定版正式发布 | 用 Flutter 构建 Windows 桌面应用程序
  11. unity3d深入学习笔记4:AnySdk接入
  12. 奋斗者——一个高级咨询师是怎样炼成的
  13. Java开发第一课认识计算机
  14. 同步110序列检测电路
  15. 智能优化算法之灰狼优化算法(GWO)的实现(Python附源码)
  16. 小米怎么把便签放在手机桌面上
  17. 云更新无盘服务器缓存,云更新无盘服务器缓存设置
  18. 班得瑞 Bandari 《班得瑞13张专辑全收藏》【APE+CUE/百度网盘地址】
  19. 用C语言写俄罗斯方块
  20. 图像插值——线性差值

热门文章

  1. 聚类算法及相关内容简介
  2. 8个技巧提升自己的能力
  3. mybatis中resultMap返回类型
  4. AtomicXXX 用得好好的,阿里为什么推荐使用 LongAdder?面试必问
  5. 嵌入式学习 开发板触屏失灵解决
  6. java js 截取字符串_JavaScript:在JS中截取字符串的方法
  7. Python批量转存百度网盘资源
  8. html/css 总结项目之一 PC端 湄公河行动
  9. Android 端滴滴打车接口的开发
  10. 无接触体征监测的技术和应用