原本的想法是这样的:博客整理知识学习的同时,也记录点心情...集中式学习就没这么多好记录的了! 要学习一门技术,首先要简单认识一下爬虫!其实可以参考爬虫第一章! 整体上介绍该技术包含技能,具体能做什么.这里就更详细了

重点在这里

为什么使用爬虫

首先请问: 都说现在是大数据时代. ,那数据从哪来?

什么是爬虫

百度百科网络爬虫

爬虫:就是抓取网页数据的程序。

爬虫怎么抓取网页数据?

网页三大特征

  1. 网页都有自己唯一的URL(统一资源定位符,俗称网址) 来进行定位
  2. 网页使用的都是HTML(超文本标记语言)来描述网页信息,展示形式统一!
  3. 网页都使用HTTP/HTTPS(超文本传输协议) 协议来传输HTML数据 , 数据传输协议统一!

爬虫的设计思路

  1. 首先确定需要爬取的URL地址
  2. 通过HTTP.HTTPs协议来获取对应的页面
  3. 提取HTML页面有用的数据:
    - 如果需要的数据,就保存起来
    - 如果是页面包含其他URL, 就继续执行第二步!

为什么选择Python

这里感觉是废话! 都会说:赚钱就学呗! 其实了解其他语言的特性也是一种资历!!! 都没接触过哪敢吹!

可以做爬虫的语言有很多,如 PHP、Java、C/C++、Python等等...

  • PHP 为做网站而生,而且对多线程、异步支持不够好,并发处理能力很弱。 爬虫是工具性程序,对速度和效率要求比较高。
  • Java 的网络爬虫生态圈也很完善,是Python爬虫最大的对手。但是Java语言本身很笨重,代码量很大,难度高。重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。
  • C/C++ 运行效率和性能几乎最强,但是学习成本很高,代码成型比较慢。 能用C/C++做爬虫,只能说是能力的表现,但是不是正确的选择。
    • Python 语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。 还有强大的爬虫Scrapy,以及成熟高效的 scrapy-redis分布式策略。 而且,调用其他接口也非常方便(胶水语言)

关于爬虫需要掌握什么?

  1. 基础语法(这个必须已经搞定)
  2. 如何抓取HTML页面:
    • HTTP 请求处理, urllib, urllib2, requests
    • 处理后的请求可以模拟浏览器发送请求,后去服务器响应的文件
  3. 数据提取
    • 解析服务器响应的内容, re,xpath,BeautifulSoup4(bs4),jsonpath,puquery等
    • 使用某个匹配规则提取数据,符合这个规则的数据就会被匹配!
  4. 如何采集动态HTML,验证码的处理
    • 通用的动态页面采集: Selenium + PhantoJS(无界面) : 模拟真实浏览器加载js,ajax等非静态页面数据
    • Tesseract :机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的验证码可以通过手动输入/专门的打码平台

5.Scrapy框架(Scrapy,Pysplider)
高定制性高性能(异步网络框架twisted),所以数据下载速度非常快, 提供了数据存储、数据下载、提取规则等组件。

  1. 分布式策略scrapy-reids
    scrapy-redis,在Scrapy的基础上添加了一套以 Redis 数据库为核心的组件。让Scrapy框架支持分布式的功能,主要在Redis里做 请求指纹去重、请求分配、数据临时存储。

  2. 爬虫- 反爬虫- 反反爬虫 之间的斗争:
    • 其实爬虫做到最后,最头疼的不是复杂的页面,也是晦涩的数据,而是网站另一边的反爬虫人员。
    • User-Agent、代理、验证码、动态数据加载、加密数据。
    • 数据价值,是否值的去费劲做反爬虫。

      1. 机器成本 + 人力成本 > 数据价值,就不反了,一般做到封IP就结束了。
      2. 面子的战争....

    爬虫和反爬虫之间的斗争,最后一定是爬虫获胜!为什么?只要是真实用户可以浏览的网页数据,爬虫就一定能爬下来!

(Pyhton爬虫03)爬虫初识的更多相关文章

  1. 爬虫03 /代理、cookie处理、模拟登录、提升爬虫效率

    爬虫03 /代理.cookie处理.模拟登录.提升爬虫效率 目录 爬虫03 /代理.cookie处理.模拟登录.提升爬虫效率 1. 代理 2. cookie处理 3. 模拟登录 4. 如何提升爬取数据 ...

  2. Python 爬虫1——爬虫简述

    Python除了可以用来开发Python Web之后,其实还可以用来编写一些爬虫小工具,可能还有人不知道什么是爬虫的. 一.爬虫的定义: 爬虫——网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区 ...

  3. 【java爬虫】---爬虫+基于接口的网络爬虫

    爬虫+基于接口的网络爬虫 上一篇讲了[java爬虫]---爬虫+jsoup轻松爬博客,该方式有个很大的局限性,就是你通过jsoup爬虫只适合爬静态网页,所以只能爬当前页面的所有新闻.如果需要爬一个网站 ...

  4. [爬虫]Python爬虫基础

    一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网 ...

  5. python3爬虫--反爬虫应对机制

    python3爬虫--反爬虫应对机制 内容来源于: Python3网络爬虫开发实战: 网络爬虫教程(python2): 前言: 反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需 ...

  6. PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  7. Python 开发轻量级爬虫03

    Python 开发轻量级爬虫 (imooc总结03--简单的爬虫架构) 现在来看一下一个简单的爬虫架构. 要实现一个简单的爬虫,有哪些方面需要考虑呢? 首先需要一个爬虫调度端,来启动爬虫.停止爬虫.监 ...

  8. python爬虫框架scrapy初识(一)

    Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.所谓网络爬虫,就是一个在网上到处或定向抓取数据的 ...

  9. python爬虫系列之初识爬虫

    前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的 ...

随机推荐

  1. mac无法使用80端口问题

    前言:在mac os中,非root用户是无法使用小于1024的常用端口的.如果开发中需要用到80端口, 就要设置端口转发. hosts文件介绍(1)hosts文件是将域名和IP地址建立映射关系的系统文 ...

  2. jQuery Cookie操作cookie

    jQuery cookie下载地址:http://plugins.jquery.com/cookie/ 使用jquery.cookie.js依赖于jquery 基本用法:   1. 创建cookie ...

  3. WinCE下的串口通信开发(VS2005,VB.Net,VC++)

    WinCE下的串口通信开发(VS2005,VB.Net,VC++)   WinCE下的串口通信开发 一.利用Visual Basic 开发很简单,因为有现成的控件可以直接调用 以VS2005为例,首先 ...

  4. STM32之关闭JTAG

    1.有些时候不想用JTAG口(而用SWJ在线调试),把JTAG暂用的IO通过remap出来使用 2.比如48 pin的STM32F103CBT6单片机: GPIO_PinRemapConfig(GPI ...

  5. 转:system.Security.Cryptography C# 加密和解密

    以下文转自: http://www.360doc.com/content/13/0122/05/19147_261678471.shtml 总结:注册的时候经过MD5加密存进数据库,在登录的时候需要先 ...

  6. iOS获取通讯录所有联系人信息

    以下是2种方式: 第一种方法: GetAddressBook.h #import <Foundation/Foundation.h> @interface GetAddressBook : ...

  7. Vue填坑(1)----通过vue-cli,认识vue-router

    开始 首先,确保之前已经安装过 npm 和 nodejs(为了避免版本的问题,最好使用较新的版本). 全局安装 vue-cli : npm install -g vue-cli 新建文件夹 my-pr ...

  8. Docker环境搭建以及基本操作

    Docker环境搭建以及基本操作 Docker环境基本搭建: 基础环境:Centos 7.4        IP:192.168.30.117 [root@docker ~]# cat /etc/re ...

  9. Win10英文系统 JDK1.8安装及环境变量配置

    前提 今天换新电脑了,需要重新安装一遍JDK.写个随笔记录一下整个过程. 下载 官网上JDK已经出到10了,但是回忆起JDK9都有各种坑(不支持一些软件),决定还是用JDK8. 下载地址: http: ...

  10. 跨浏览器实现placeholder效果的jQuery插件

    曾经遇到这样一个问题,处理IE8密码框placeholder属性兼容性.几经周折,这个方案是可以解决问题的. 1.jsp页面引入js插件 <script type="text/java ...