zoukankan      html  css  js  c++  java
  • Python 爬虫基础

    1. 安装虚拟环境

    #安装虚拟环境(window下加-win,苹果系统不需要加)
    pip install virtualenvwrapper-win
    #常用命令
    mkvirtualenv pmz(创建虚拟环境的名字)				 	 #创建虚拟环境成功后会自动切换到环境下
    workon envname(envname(切换虚拟环境的名字)) 		  	  #切换到虚拟环境
    pip list     										#查看虚拟安装所有的包
    deactivate   										#退出虚拟环境
    rmvirtualenv pmz(pmz(删除虚拟环境))               	#删除虚拟环境
    lsvirtualenv  										#列出所有已创建的虚拟环境
    mkvirtualenv--python--C: ..python.exe envname   	#指定Python解释器创建虚拟环境
    

    2. 爬虫概念

    爬虫, 又称网页蜘蛛或网络机器人. 
    爬虫是 模拟人操作客户端(浏览器, APP) 向服务器发起网络请求 抓取数据的自动化程序或脚本. (*****) 
    # 说明: 
    	1.模拟: 用爬虫程序伪装出人的行为, 避免被服务识别为爬虫程序 
        2.客户端: 浏览器, APP都可以实现人与服务器之间的交互行为, 应用客户端从服务器获取数据 
        3.自动化: 数据量较小时可以人工获取数据, 但往往在公司中爬取的数据量在百万条, 千万条级别的, 所以要程序		自动化获取数据.
    cpython   -   Ipython
    #通用爬虫----只是爬虫,为搜索引擎提供检索服务
    1.起始url
    2.url队列    --------爬取数据
    
    
    #设计思路
    1.确定url,发起请求,获取响应
    2.数据解析:re,正则,xpath,Bs4,pyQuery
    3.数据持久化:    数据库Mysql   Redisa,MongoDB
    

    3. 爬虫分类

    (1): 通用爬虫-----只是爬虫,为搜索引擎提供检索服务:搜索引擎
        # 实例: 百度, 搜狗, Google的搜索引擎 
        # 功能: 访问网页 -> 抓取数据 -> 数据处理 -> 提供检索服务 
        # 工作流:
        	1.给定一个起始URL, 存于爬取队列中 
            2.爬虫程序从队列中取出url, 爬取数据 
            3.解析爬取数据, 获取网页内的所有url, 放入爬取队列
            4.重复第二个步骤
        # 使搜索引擎获取网站链接: 
        	1.主动将url提交给搜索引擎(https://ziyuan.baidu.com/linksubmit/url) 
            2.在其他热门网站设置友情了解 
            3.百度和DNS服务商合作, 收录新网站
        # 网站排名(SEO): 
        	1.根据PageRank值进行排名(流量, 点击率) 
            2.百度竞价排名, 钱多就靠前排 
        # 缺点: 
        	1.抓取的内容多数无用 
            2.无法精确获取数据 
        # 协议: robots协议 --> 约定哪些内容允许哪些爬虫抓取 (约束通用爬虫和聚焦爬虫)
        	1.无需遵守, 该协议适用于通用爬虫, 而我们写的是聚焦爬虫 
            2.查看方法: 网站url/robots.txt, 如https://www.baidu.com/robots.txt
    (2): 聚焦爬虫-----聚焦爬虫
        # 概念:
        	聚焦爬虫指针对某一领域根据特定要求实现的爬虫程序, 抓取需要的数据(垂直领域爬取)
        # 设计思路: 
        	(1).确定爬取的url, 模拟浏览器请服务器发送请求  
            (2).获取响应数据并进行数据解析 ---re,正则,[xpath]推荐,Bs4,pyQuery
            (3).将目标数据持久化到本地----- .MySQL,MongoDB,Redis
    

    4. 协议模型

    OSI七层模型
    7.应用层   6.表示层   5.会话层   4.传输层    3.网络层    2.数据链路层    1.物理层 (从下往上数)
    tcp 五层协议
        1.应用层:http/Https/fip/ssh
        2.传输层:tcp/udp
        3.网络层: ip协议
        4.数据链路层:APR协议
        5.物理层:以太网协议
    

    5. HTTP协议与HTTP S协议

    # HTTP协议: 明文传输, 端口80 
    - Http协议, 全称为Hyper Text Transfer Protocol, 即超文本传输协议. 
    - HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议, 它能保证高效而准确地传送超文本文档. 
    - 目前广泛使用的是HTTP 1.1版本     
    
    # HTTPS协议: 加密传输, 端口443 
    - HTTPS全称是Hyper Text Transfer Protocol over Secure Socket Layer, 是以安全为目标的 HTTP通道. HTTPS协议实质是HTTP的安全版, 即HTTP下加入SSL安全套接层, 简称HTTPS. 
    - HTTPS的安全体现在SSL的加密行为, 即通过HTTPS协议传输的数据都是经过SSL加密的 
    - HTTPS的作用: 
        1.建立一个信息安全的通道来保证数据传输的安全 
        2.确认网站的真实性, 凡是使用了HTTPS的网站, 都可以通过点击浏览器地址栏的锁头标志来查看网站 认证之后的真实信息, 也可以通过CA机构颁发的安全签章来查询 
        
    # HTTP与HTTPS协议的区别:(背下来) 
    	1)、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 
        2)、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 
        3)、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 
        4)、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    

    6. TCP与UDP 协议

    # TCP与UDP 
    1.TCP协议:是一种面向连接的, 可靠的, 基于字节流的传输层通信协议 
    	1).有序性: 数据包编号, 判断数据包的正确次序 
    	2).正确性: 使用checksum函数检查数据包是否损坏, 发送接收时都会计算校验和 
    	3).可靠性: 发送端有超时重发, 并由确认机制识别错误和数据的丢失 
    	4).可控性: 滑动窗口协议与拥塞控制算法控制数据包的发送速度 
            
    2.UDP协议: 用户数据报协议, 面向无连接的传输层协议, 传输不可靠. 
    	1).无连接, 数据可能丢失或损坏 
    	2).报文小, 传输速度快 
    	3).吞吐量大的网络传输, 可以在一定程度上承受数据丢失
    
    # ARP协议: 通过IP获取目标计算机mac地址的协议(通过IP找mac)
    

    7. 服务器常见端口

    1.ftp: File Transfer Protocol的缩写, 即文件传输协议. 端口:21 
    2.ssh: Secure Shell的缩写, 用于远程登录会话. 端口:22 
    3.MySQL: 关系型数据库, 端口:3306
    4.MongoDB: 非关系型数据库, 端口:27017 
    5.Redis: 非关系型数据库, 端口:6379
    

    8. 开发准备

    # web端
    
    1. Python3.6 
    2. Pycharm 
    3. Google Chrome
    
    #抓包工具
    fiddler抓包工具
    
    
  • 相关阅读:
    简易温控器的开发
    信号处理电路1:差动转单端输出电路计算于分析
    电容触摸屏资料适合7寸30PINS
    TI Motor Control
    AD规则实例1元件keepout层与覆铜间距
    Python基础语法
    Python基本运算符
    Python 字符串
    javascript>getElementsByClass
    thrift多平台安装
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12381856.html
Copyright © 2011-2022 走看看