目录

  • 前言
  • 一、爬虫是什么?
  • 二、都有哪些语言可以实现爬虫
    • 1.php
    • 2.java
    • 3.c++
    • 4.python
  • 爬虫根据需求分类
    • 通用爬虫
    • 聚焦爬虫
      • 爬虫如何抓取网页数据
      • 爬虫涉及的整体内容
      • HTTP协议
        • 常见端口
        • http工作原理
          • url详解:
          • 原理:
          • 浏览器端可以接受的媒体类型 ,MIME
          • 浏览器申明自己接收的编码方法
          • 浏览器申明自己接收的语言。
          • 和缓存相关
          • 连接方式,保持长连接
          • 会话相关
          • 主机
          • 内容是否分块传输

前言

网络爬虫是一种计算机程序,可以根据科学计算、数据处理及网页开发等方面的需求,在互联网上进行数据、信息
的爬取,高效、精准地进行数据采集。作文者主要是学习以Python为工具的爬虫


提示:以下是本篇文章正文内容,下面案例可供参考

一、爬虫是什么?

网络爬虫技术是指一种按照一定的规则,自动地抓取互联网信息的程序或是脚本。

二、都有哪些语言可以实现爬虫

1.php

号称是世界最优美的语言,但是他不是很擅长这个,对多进程多线程支持的不好

2.java

做起来也非常的不错,是python爬虫最主要的对手,代码太臃肿,代码量很大,重构成本非常的大,而我们爬虫需要根据需求经常修改,所以它不好。

3.c++

学习成本比较高,性能和效率非常高,没这么做的,仅仅是一个能力的体现。

4.python

相对来说,结构简单,语言简便。有一个非常强大的爬虫框架

爬虫根据需求分类

通用爬虫

百度,360,谷歌,搜狗、、、必应 搜索引擎
搜索引擎使用的爬虫就是通用爬虫
(1)抓取网页
(2)抓取数据
(3)数据存储
(4)数据处理
(5)给你提供了检索服务
抓取流程:
(1)给一些起始的url,放入待爬取url队列
(2)从队列中取出url,开始爬取
(3)分析内容,获取网页中所有的url,继续执行第二步,直到结束
搜索引擎如何获取一个新的网站的链接
(1)主动给搜索引擎提交url
(2)在其它网站中设置友情链接
(3)百度和DNS服务商进行合作,加速收录新网站
robots协议
淘宝就不让百度抓取 https://www.taobao.com/robots.txt
可以限制通用爬虫的抓取,哪些可以抓,哪些不能抓仅仅是一个协议,一般情况只有大型搜索引擎遵从这个协议。
网站排名(SEO (Search Engine Optimization))即搜索引擎优化
(1)根据pagerank值排名,根据流量、点击率等等进行综合的计算进行排名,值越高,排名越靠前
(2)百度竞价排名,谁给的钱多,谁在最前面
缺点:
(1)抓取的很多数据都是无用的
(2)不能根据用户的需求来抓取对应的数据

聚焦爬虫

根据自己的需求,去写一个网络爬虫程序,抓取对应的数据即可


通用爬虫的伪代码实现:import Queueinitial_page = "http://www.renminribao.com"url_queue = Queue.Queue()
seen = set()seen.insert(initial_page)
url_queue.put(initial_page)while(True): #一直进行直到海枯石烂if url_queue.size()>0:current_url = url_queue.get()    #拿出队例中第一个的urlstore(current_url)               #把这个url代表的网页存储好for next_url in extract_urls(current_url): #提取这个url里链向的urlif next_url not in seen:      seen.put(next_url)url_queue.put(next_url)else:break

基本上所有通用爬虫的后端逻辑都是这样的,看起来简单,但是涉及到非常多的问题,比如说效率、数据存储、判重、信息抽取和更新等。大家可以思考这些问题通用爬虫应该会怎么解决。

爬虫如何抓取网页数据

网页都有特点:
(1)网页都有自己的唯一的统一资源定位符(url)
(2)网页都是有html组成的
(3)传输协议使用的都是http、https协议
爬虫设计的思路是:
(1)给我一个url
(2)模拟浏览器通过http协议访问url,获取到这个url的html代码
(3)解析字符串(根据一定规则提取你所需要的数据)

爬虫涉及的整体内容

 1、python语法2、如何抓取页面,使用到python库   请求库urllib2(不推荐使用) urllib3  requests3、解析内容  解析库正则表达式、xpath、bs4、jsonpath4、采集动态htmlselenium+phantomjs5、scrapy高性能异步网络框架6、分布式,scrapy-redis组件在scrapy的基础上增了一套组件,结合redis进行存储等功能7、爬虫-反爬虫-反反爬虫之间的博弈过程其实爬虫到最后,让你头疼的不是复杂的界面,不是数据的提取,而是和对面相互博弈的过程反爬虫的一般手段:User-Agent、代理、验证码、动态数据加载、数据加密最终肯定能获取数据,公司值不值得,因为只要浏览器能够正常访问,那么数据就能拿到

HTTP协议

http协议这一篇就够了:
链接: link.

数据分析-爬虫学习笔记(1)相关推荐

  1. Python3 爬虫学习笔记 C09【数据储存系列 — 文件储存】

    Python3 爬虫学习笔记第九章 -- [数据储存系列 - 文件储存] 文章目录 [9.1]TXT 文本存储 [9.1.1]基本示例 [9.1.2]打开方式 [9.2]JSON 文件存储 [9.2. ...

  2. 爬虫学习笔记(十)—— Scrapy框架(五):下载中间件、用户/IP代理池、settings文件

    一.下载中间件 下载中间件是一个用来hooks进Scrapy的request/response处理过程的框架. 它是一个轻量级的底层系统,用来全局修改scrapy的request和response. ...

  3. Python3 爬虫学习笔记 C18【爬虫框架 pyspider — 深入理解】

    Python3 爬虫学习笔记第十八章 -- [爬虫框架 pyspider - 深入理解] 文章目录 [18.1]启动参数 [18.2]运行单个组件 [18.2.1]运行 Scheduler [18.2 ...

  4. Python3 爬虫学习笔记 C17【爬虫框架 pyspider — 基本使用】

    Python3 爬虫学习笔记第十七章 -- [爬虫框架 pyspider - 基本使用] 文章目录 [17.1]初识 pyspider [17.2]使用 pyspider [17.2.1]主界面 [1 ...

  5. Python3 爬虫学习笔记 C16【数据储存系列 — Redis】

    Python3 爬虫学习笔记第十六章 -- [数据储存系列 - Redis] 文章目录 [16.1]关于 Redis [16.2]使用 Redis [16.3]Key(键)操作 [16.4]Strin ...

  6. Python3 爬虫学习笔记 C15【代理的基本使用】

    Python3 爬虫学习笔记第十五章 -- [代理的基本使用] 文章目录 [15.1]代理初识 [15.2]urllib 库使用代理 [15.3]requests 库使用代理 [15.4]Seleni ...

  7. Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】

    Python3 爬虫学习笔记第十四章 -- [验证码对抗系列 - 点触验证码] 文章目录 [14.1]关于点触验证码 [14.2]点触验证码攻克思路 [14.3]模拟登录 12306 - 总体思路 [ ...

  8. Python3 爬虫学习笔记 C13【验证码对抗系列 — 滑动验证码】

    Python3 爬虫学习笔记第十三章 -- [验证码对抗系列 - 滑动验证码] 文章目录 [13.1]关于滑动验证码 [13.2]滑动验证码攻克思路 [13.3]模拟登录 bilibili - 总体思 ...

  9. Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】

    Python3 爬虫学习笔记第十二章 -- [验证码对抗系列 - 图形验证码] 文章目录 [12.1]关于普通图形验证码 [12.2]tesserocr 库识别验证码 [12.3]pytesserac ...

最新文章

  1. XWiki 4.3 正式版发布
  2. 织梦最新版后台一键更新网站、更新文档HTML卡死的解决方法
  3. Android设置ProgressBar的前景和背景及其在多线程中的刷新
  4. Linux下的各文件夹的作用(转)
  5. 倒计时1天:AI在改变一切
  6. ELK日志分析平台.1-搭建
  7. 计算机网络的各层及其协议,计算机网络的体系结构 (architecture) 是计算机网络的各层及其协议的集合...
  8. 让li不显示超出内容,显示... (编程方法和CSS方法)
  9. windows下的mujoco环境搭建
  10. 图书信息管理系统(SSM框架)
  11. 利用uDig 快速生成 GeoServer 可用的 SLD 渲染文件
  12. 虚拟桌面更新,自定义快捷键
  13. 奠定技术基石 英特尔创新引擎闪耀CES2019
  14. Java 读取excel文件并导入数据库
  15. electron 调试、问题追踪
  16. 计算机打印unknow,系统安装打印机驱动提示unknown device解决方法
  17. 有效说服三部曲(纯干货无废话)
  18. 中华英才网爬虫程序(3)-queue和threading模块的结合使用
  19. 【SSL】2344 【洛谷】2835刻录光盘
  20. JSP界面中如何用a标签带参数跳转到控制器?

热门文章

  1. 网络模型: Capsule
  2. 试题 算法训练 逗志芃的危机
  3. 晁盖与吴用 3gp转换软件
  4. 如何处理在WINDOWS VISTA上安装VS2008时遇到要求安装WINDOWS XP SP2的错误和QQ对战平台安装后不能登录的问题
  5. maven 项目 springMVC实现文件图片的上传下载功能详解(源码已提供,小白必看)
  6. PPT卡死了?只需要这几个小技巧,瞬间帮你提速!
  7. 比特率 Kbps kbit/s 1KB/s Byte 的正确理解
  8. 【genius_platform软件平台开发】第二十八讲:NEON指令集优化(附实例)
  9. 联想微型计算机a300,联想一体机A300.ppt
  10. 使用Lumberjack进行日志切割归档