数据分析-爬虫学习笔记(1)
目录
- 前言
- 一、爬虫是什么?
- 二、都有哪些语言可以实现爬虫
- 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)相关推荐
- Python3 爬虫学习笔记 C09【数据储存系列 — 文件储存】
Python3 爬虫学习笔记第九章 -- [数据储存系列 - 文件储存] 文章目录 [9.1]TXT 文本存储 [9.1.1]基本示例 [9.1.2]打开方式 [9.2]JSON 文件存储 [9.2. ...
- 爬虫学习笔记(十)—— Scrapy框架(五):下载中间件、用户/IP代理池、settings文件
一.下载中间件 下载中间件是一个用来hooks进Scrapy的request/response处理过程的框架. 它是一个轻量级的底层系统,用来全局修改scrapy的request和response. ...
- Python3 爬虫学习笔记 C18【爬虫框架 pyspider — 深入理解】
Python3 爬虫学习笔记第十八章 -- [爬虫框架 pyspider - 深入理解] 文章目录 [18.1]启动参数 [18.2]运行单个组件 [18.2.1]运行 Scheduler [18.2 ...
- Python3 爬虫学习笔记 C17【爬虫框架 pyspider — 基本使用】
Python3 爬虫学习笔记第十七章 -- [爬虫框架 pyspider - 基本使用] 文章目录 [17.1]初识 pyspider [17.2]使用 pyspider [17.2.1]主界面 [1 ...
- Python3 爬虫学习笔记 C16【数据储存系列 — Redis】
Python3 爬虫学习笔记第十六章 -- [数据储存系列 - Redis] 文章目录 [16.1]关于 Redis [16.2]使用 Redis [16.3]Key(键)操作 [16.4]Strin ...
- Python3 爬虫学习笔记 C15【代理的基本使用】
Python3 爬虫学习笔记第十五章 -- [代理的基本使用] 文章目录 [15.1]代理初识 [15.2]urllib 库使用代理 [15.3]requests 库使用代理 [15.4]Seleni ...
- Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】
Python3 爬虫学习笔记第十四章 -- [验证码对抗系列 - 点触验证码] 文章目录 [14.1]关于点触验证码 [14.2]点触验证码攻克思路 [14.3]模拟登录 12306 - 总体思路 [ ...
- Python3 爬虫学习笔记 C13【验证码对抗系列 — 滑动验证码】
Python3 爬虫学习笔记第十三章 -- [验证码对抗系列 - 滑动验证码] 文章目录 [13.1]关于滑动验证码 [13.2]滑动验证码攻克思路 [13.3]模拟登录 bilibili - 总体思 ...
- Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】
Python3 爬虫学习笔记第十二章 -- [验证码对抗系列 - 图形验证码] 文章目录 [12.1]关于普通图形验证码 [12.2]tesserocr 库识别验证码 [12.3]pytesserac ...
最新文章
- XWiki 4.3 正式版发布
- 织梦最新版后台一键更新网站、更新文档HTML卡死的解决方法
- Android设置ProgressBar的前景和背景及其在多线程中的刷新
- Linux下的各文件夹的作用(转)
- 倒计时1天:AI在改变一切
- ELK日志分析平台.1-搭建
- 计算机网络的各层及其协议,计算机网络的体系结构 (architecture) 是计算机网络的各层及其协议的集合...
- 让li不显示超出内容,显示... (编程方法和CSS方法)
- windows下的mujoco环境搭建
- 图书信息管理系统(SSM框架)
- 利用uDig 快速生成 GeoServer 可用的 SLD 渲染文件
- 虚拟桌面更新,自定义快捷键
- 奠定技术基石 英特尔创新引擎闪耀CES2019
- Java 读取excel文件并导入数据库
- electron 调试、问题追踪
- 计算机打印unknow,系统安装打印机驱动提示unknown device解决方法
- 有效说服三部曲(纯干货无废话)
- 中华英才网爬虫程序(3)-queue和threading模块的结合使用
- 【SSL】2344 【洛谷】2835刻录光盘
- JSP界面中如何用a标签带参数跳转到控制器?
热门文章
- 网络模型: Capsule
- 试题 算法训练 逗志芃的危机
- 晁盖与吴用 3gp转换软件
- 如何处理在WINDOWS VISTA上安装VS2008时遇到要求安装WINDOWS XP SP2的错误和QQ对战平台安装后不能登录的问题
- maven 项目 springMVC实现文件图片的上传下载功能详解(源码已提供,小白必看)
- PPT卡死了?只需要这几个小技巧,瞬间帮你提速!
- 比特率 Kbps kbit/s 1KB/s Byte 的正确理解
- 【genius_platform软件平台开发】第二十八讲:NEON指令集优化(附实例)
- 联想微型计算机a300,联想一体机A300.ppt
- 使用Lumberjack进行日志切割归档