zoukankan      html  css  js  c++  java
  • 爬虫与数据分析

    jupyter的基本快捷键

    - a b 创建cell(a是在选择的cell上方创建cell,b是在下方)
    - x dd 删除cell
    - TAB 单词补全
    - shift+tab 查看帮助信息
    - y m 模式切换

    爬虫的概念

    - 通过编写代码来模拟浏览器操作,去互联网上爬取/获取数据的过程

    爬虫的分类

    - 通用爬虫 爬取一整张页面的数据
    - 聚焦爬虫 想要获取局部数据,必须要建立在通用爬虫的基础上(数据解析)
    - 增量式爬虫 实时监测网站上数据更新的情况,只爬取已经更新的数据

    反爬机制

    - 网站的公司或者个人制定了一系列的规则或策略阻止爬虫程序爬取数据

    反反爬策略

    - 通过改进爬虫程序来破解一些反爬机制,从而达到获取带有反爬机制网站的数据

    robots协议

    - 文本协议, 防君子不防小人

    请求头

    - User-Agent 请求载体的身份标识(华峰的身份证)
    - Connection: close

    响应头

    # 响应数据类型
    - Content-Type: text/json

    fidder抓包工具

    HTTP协议(https和加密方式)

    - 协议的概念: 客户端与服务端进行交互的一种方式
    - 加密方式:
        - 对称密钥加密
        - 非对称密钥加密
        - 证书密钥加密

    requests模块

    - 安装:
        - pip3 install requests
    - 概念:
        - 模拟浏览器向网站服务器发送请求
    - 作用:
        - 爬取数据
    - requests模块的使用:
        - get
        - post
    - 反爬机制:
        - UA检测
    - 反反爬策略:
        - UA伪装
     

    爬取数据的流程:

    - 1.指定URL      url = "https://www.baidu.com"
    - 2.发送请求     response = requests.get(url=url)
    - 3.获取响应数据  page_text = response.text
    - 4.持久化存储    with open('./file.html', 'w', encoding ='utf-8') as f:
                  f.write(page_text)



    第一个爬虫案例:

      

    # 需求:爬取搜狗指定词条搜索后的页面数据(通过UA伪装对代码改进)
    
    import requests
    url = "https://www.sogou.com/web?query=学位"   #获取url
    headers = {
       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    }    #UA伪装
    response = requests.get(url=url,headers=headers)  #发送请求
    response.encoding="utf-8"                                     #获取的数据提供编码方式
    page_text = response.text                                      # 获取数据
    with open('./sougou.html', 'w', encoding='utf-8')as f :  #长久保存
        f.write(page_text)

    对上一个案例进行改进:

      查询的keyword允许自定义输入

    import requests
    word = input("请输入需要查询的关键字: ")
    sougou_url = "https://www.sogou.com/web"
    headers = {
       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    }
    params = {
        "query":word
    }
    response = requests.get(url=sougou_url,headers=headers,params=params)
    response.encoding='utf-8'
    page_text = response.text
    
    with open('./daxiong.html','w',encoding='utf-8')as f:
        f.write(page_text)





















     
  • 相关阅读:
    20172328《程序设计与数据结构》实验一报告
    20172328《程序设计与数据结构》第三周学习总结
    20172328《程序设计与数据结构》第二周学习总结
    20172328《程序设计与数据结构》第一周学习总结
    预备作业03
    预备作业02
    寒假作业01
    竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
    Java全栈第二篇-IDEA的安装及教育包领取(高校免费一年)和入门教程
    Java全栈第一篇-流程控制语句
  • 原文地址:https://www.cnblogs.com/echo2019/p/11116140.html
Copyright © 2011-2022 走看看