• 爬虫day01


    爬虫

    1.概念:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。

    python可以实现爬虫

    (1)pthon:代码优雅学习成本低,具有非常多的模块。具有框架的支持

    scrapy

    https安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

    SSL三种加密方式:

    对称秘钥加密:

    非对称秘钥加密:

    数字证书秘钥加密:

    秘钥加密

    分为三种,对称秘钥加密和非对称秘钥加密,以及证书加密

    对称秘钥加密:客户端对数据加密将秘钥一块发送给服务器端,服务器端负责解密。

    非对称秘钥加密:服务器端先告诉客户端,按照服务器端给客户端指定的这种加密形式进行加密。

    (好处就是不用再传秘钥了,不怕被拦截了。拦截了里面也没有秘钥,所以无法被破解,只有服务器端接受了密文之后,服务器端用自己的私钥,对密文进行解密。

    坏处:非对称加密效率较低,处理起来较为复杂,通信过程中使用就有一定的效率问题而影响通信速度)

    证书加密:和非对称加密相比多了中间环节(数字证书的三方机构)

    # 演示最简单的一个爬虫程序
    # 导包
    import requests #使用频率高
    import urllib.request
    import urllib.parse
    #指定一个url
    url='https://www.taobao.com'
    #通过requests模块发起请求:get函数返回响应对象
    response=requests.get(url=url) #模块调函数,函数调参数
    #response.json()#获取响应对象中json格式的数据
    # response.encoding #获取响应数据的编码格式(可被修改)
    # content获取的是二进制的数据
    # data=response.content#二进制
    #获取响应内容(爬去淘宝页面数据)
    # response.status_code#响应状态码
    # response.headers#获取响应头信息
    data=response.text#字符串
    print(response.encoding)  #这个响应格式是由服务器决定的
    

      

    # 需求,根据指定的 url进行网页数据的爬去,且进行持久化操作
    import requests
    # 指定url
    url='https://www.taobao.com'
    # 发起请求
    response=requests.get(url)   #问服务器要东西请求对象
    
    data=response.text#对象的东西取出来  找你要东西 把东西给你  从响应对象里取出来
    
    #进行文件操作
    with open('./taobao.html','w',encoding='utf-8')as fp:
        fp.write(data)
        print('over')
    

     动态数据抓取不到

    #get
    
    import requests
    import urllib.request
    #requests的get请求
    
    #模拟抓取系统,手动指定关键字进行百度搜索,保存搜索结果
    wd=input('enter a word:')
    get_url='http://www.baidu.com/s'
    #url的特性:url必须是有ascii编码的数据组成
    #可以将请求携带的参数封装到一个字典中
    param={
        'ie':'utf-8',
        'wd':wd
    }
    
    # url=urllib.request.urlparse(url)
    # # 域名当中有中文的话能够通过urlparse(url)进行解析
    
    #参数2:对请求参数的封装
    response=requests.get(url=get_url,params=param)
    # response.encoding='utf-8'
    data=response.text
    filename=wd+'.html'
    with open(filename,'w',encoding='utf-8') as fp:
        fp.write(data)
    

      

  • 相关阅读:
    Worker Threads in C#
    Opera和各种下载工具的右键整合
    两种不用的电动车刹车装置价格竟差了一倍
    SQL Server中CONVERT  将日期格式化
    javascript获得当前文档的相对路径
    arcgis sever9.3 for flex API
    常用ArcGIS Server for java网址
    点线面查询闪烁
    arcmap 中建鹰眼
    将一个包含有exe运行文件的文件夹压缩成exe文件
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9709951.html
Copyright © 2020-2023  润新知