1、Urllib

1、Urllib

一、爬虫基础

  1、基本概念

    1.爬取网页:爬取整个网页,包含了网页中所有得内容

    2.解析数据:将网页中你得到的数据进行解析

    3.难点:爬虫和反爬虫之间的博弈

   2、爬虫用途

    数据分析/人工数据集

    社交软件冷启动
    舆情监控
    竞争对手监控

  3、爬虫分类

    3.1、通用爬虫:
      实例
        百度、360、google、sougou等搜索引擎--伯乐在线
      功能
        访问网页->抓取数据->数据存储->数据处理->提供检索服务
      robots协议
        一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用
        自己写的爬虫无需遵守
      网站排名(SEO)
        1.根据pagerank算法值进行排名(参考个网站流量、点击率等指标)
        2.百度竞价排名
      缺点
        1.抓取的数据大多是无用的
        2.不能根据用户的需求来精准获取数据
    3.2、聚焦爬虫
      功能
        根据需求,实现爬虫程序,抓取需要的数据
      设计思路
        1.确定要爬取的ur1
          如何获取Ur1
        2.模拟浏览器通过http协议访问url,获取服务器返回的html代码
          如何访问
        3.解析html字符串(根据一定规则提取需要的数据)
          如何解析

  4、反爬手段

    1.User-Agent:      

      User Agent中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

    2.代理IP
      西次代理
      快代理
      什么是高匿名、匿名和透明代理?它们有什么区别?
        1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。
        2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP
        3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。
    3.验证码访问
      打码平台
      云打码平台
      超级
    4.动态加载网页网站返回的是js数据并不是网页的真实数据
      selenium驱动真实的浏览器发送请求
    5.数据加密
      分析js代码

  5、urllib库使用    

    urllib.request.urlopen()模拟浏览器向服务器发送请求    

    response   服务器返回的数据

      response的数据类型是HttpResponse
      字节-->字符串
        解码decode
      字符串-->字节
        编码encode
      read()  字节形式读取二进制  扩展:rede(5)返回前几个字节
      readline()  读取一行
      readlines   一行一行读取直至结束
      getcode    获取状态码
      geturl()      获取url
      getheaders()获取headers
    urllib.request.urlretrieve
      请求网页
      请求图片
      请求视频

   6、获取百度网页源码

import urllib.request


# 定义一个URL
url = 'http://www.baidu.com/'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 获取响应中的页面的源码
# 将二进制的数据转换为字符串   解码/decode()  charset:编码格式
content = response.read().decode('utf-8')    # 返回的是字节形式的二进制数据

# 打印数据
print(content)

  

  7、

posted @ 2024-09-25 22:43  博雅塔之客  阅读(8)  评论(0编辑  收藏  举报