网络爬虫基础

来源:互联网 发布:dnf客户端源码 编辑:程序博客网 时间:2024/05/29 09:09

网络爬虫:抓取网页数据的程序。。爬虫属于工具性程序,对速度和要求非常高。


网页的三大特征:

1、网页都有自己一个唯一的url(统一资源定位符)

2、网页都用HTML(超文本标记语言)来描述页面信息

3、页面都用HTTP/HTTPS(超文本传输协议)协议来传输HTml数据


爬虫的设计思路:

1、设定需要爬去的网页的URL地址

2、通过HTTP协议获取对应的HTML页面

3、提取HTML页面信息

1)如果有用数据,保存

2)如果需要继续爬取的连接,重新制定第二部

Python做爬虫的优势:

1、php 写web页面,而且对多线程,异步支持比较差,并发能力较弱。

2、java的爬虫生态圈非常完善,但是代码量非常大。相比较而言,做功能的修改后代码改动量比较的。开发成本和重构成本比较高。

3、C/C++运行效率和性能几乎最强(汇编),学习成本太高。项目代码成型慢。

4、Python语法精炼,编写快速灵活,开发效率高,相关的HTTP请求库和HTML解析库非常丰富,有强大的爬虫框架Scrapy,及高效成熟的scrapy-redis分布式策略。

相比Java/c/c++,性能速度较差。Python属于变异性语言,可以通过硬件弥补。

知识储备:

1、Python基础语法、基本web知识

2、HTML页面的抓取:urlib,urlib2,requests三个HTTP请求处理库。通过处理,可以模拟浏览器发送HTTP请求,并获取服务器返回的HTML相应页面

3、HTML页面的解析:正则,xpath,BeautifulSoup4,jsonpath(处理json数据)。使用某种描述性语言来提取需要的页面数据。制定匹配规格,复合规则的数据。

4、动态页面的处理,验证码的处理

Selenium +PhantomJS模拟正式浏览器加载数据,js/ajax

Tesseract OCR:光学字符识别系统,识别图像的内容,返回文本内容

5、Scrapy框架:高定制性高性能的Python爬虫框架

函数-类-模块/包/库-框架:框架包括了很多不同功能 的模块,提供了数据下载,数据提取,数据存储,请求去重等。

并且使用了twisted异步网络框架,下载速度非常快。

6、scrapy-redis分布式策略

scrapy本省不支持分布式,scrapy-redis就是一套以redis数据库为核心的组件,让scrapy具有了支持分布式的功能,所有的请求、

请求去重指纹、数据都存储在同一个redis数据库里,可以统一调度和分配。(多态机器一起爬的同时,有一台机器来统筹)

7、爬虫-反爬虫-反 反爬虫

User-Agent()

代理IP、

验证码、

动态数据加载。。



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 8个月小孩发烧39度怎么办 咳嗽吃了很多药都不见效果怎么办 生完孩子半个月奶水越来越少怎么办 买到了坏了的水果商家不赔怎么办 小孩奶不够吃又不吃奶粉怎么办 10个月的宝宝便秘很严重怎么办 四岁的宝宝突然不怎么吃饭怎么办 1岁7个月宝宝突然不爱吃饭怎么办 宝宝发烧好了之后不吃辅食怎么办 吃母乳的宝宝不喝奶粉怎么办 奶水不足宝宝又不喝奶粉怎么办 6个月宝宝断奶哭闹不用奶瓶怎么办 小孩不爱吃饭怎么办该吃些什么 二个月宝宝只认母乳不喝牛奶怎么办 满月宝宝只认奶粉不认母乳怎么办 宝宝四个月只认奶瓶不认母乳怎么办 新生儿只认奶瓶不认母乳怎么办 7个月宝宝不吃辅食怎么办 8个月小孩不吃辅食怎么办 9个月小孩不吃辅食怎么办 十一个月宝宝拉肚子拉水怎么办 小孩好动上课也坐不住会怎么办 幼儿大班关于环保的手抄报怎么办 捷达车打开丝位子风扇总转怎么办 小班个案分析:好动的孩子该怎么办 孩子突然过于的兴奋不睡觉是怎么办 刚出生的宝宝听力未通过怎么办 孩子多动症被老师打不上学怎么办 小孩在校被学生打家长该怎么办? 8岁儿童好动上课不注意听课怎么办 怀孕第一个月喝了啤酒怎么办 不知道自己怀孕喝了酒怎么办 怀孕一个月不知道喝酒了怎么办 老师说孩子上课不专心听讲怎么办 二年级孩子上课不认真听讲怎么办 二年级的孩子浮躁上课不认真怎么办 三年级的小孩上课不认真听讲怎么办 大班孩子上课不专心听讲玩怎么办 老师跟家长说小孩上课讲话怎么办 别的家长动手打自己的孩子怎么办? 一岁3个月宝宝骨龄偏小怎么办