• 爬虫第一节基础理解



    ­
    '''
    爬虫的使用
    第一点:就是Urlib库 常用的是 urlib.request,urlib.err,urlib.parse
    这里用python3常用
    urlopen
    urlencode
    quote
    Request

    file.read()/file.readlines()读取全部内容 内容赋值为字符串
    file.readline()读取一行内容 内容赋值为列表变量
    '''
    # 使用urllib.request导入模块
    import urllib.request
    # (2)使用urlib.request.urlopen打开并爬取一个网页,
    file = urllib.request.urlopen("https://www.baidu.com")

    # (3)read用于全部内容 readline用于一行内容
    data = file.read()
    dataline = file.readline()
    # (4)
    print(dataline)
    # (5)
    print(data)
    # open()函数打开文件。 并用wb即二进制写入的方式打开,打开后将句柄赋给handle
    # 用write写入对应数据data
    fhandle = open("G:/百度网盘/精通Python网络爬虫源码/书中源码/1.html", "wb")
    fhandle.write(data)
    fhandle.close()
    # 主要的目的就是存储爬取文件而又简单的方法在urlib.request里面的urlretrieve()
    # 其中格式是urllib.request.urlretrieve(url(网址),filename=“本地文件地址”)
    import urllib.request

    urllib.request.urlretrieve("https://www.baidu.com",
    filename=r"G:/百度网盘/精通Python网络爬虫源码/书中源码/1.html")
    # 其中缺点是产生一些环境 如果想清除这些缓存信息可以用urlcleanup()进行清除
    # urllib.request.urlcleanup()


    # 返回与当前所爬取的环境相关信息,我们可以使用info()返回
    file = urllib.request.urlopen("https://www.baidu.com")
    file.info()
    # 如果想爬取当前的状态码就可以用getcode()
    file = urllib.request.urlopen("https://www.baidu.com")
    file.getcode()
    # 获取当前所爬取得url地址 ,我们可以使用geturl()来实现
    file = urllib.request.urlopen("https://www.baidu.com")
    file.geturl()

    # 网址的url标准中只允许一部分ASCLL字符比如数字,字母,部分符号等比如汉字不符合URL标准
    # 所以我们在URL中使用一些其中不符合标准的字符就会出现问题,所以需要进行编码解决。
    # urllib.request.quote(url)进行编码
    file_2=urllib.request.quote("hhtp://www.baidu.com.cn")
    print(file_2)
    # 结果:hhtp%3A//www.baidu.com.cn

    # 对应的就是解码 urllib.request.unquote(url)进行解码
    file_3=urllib.request.unquote("hhtp%3A//www.baidu.com.cn")
    print(file_3)
    # 实例如下:
    import urllib.request
    file = urllib.request.urlopen("https://www.baidu.com")
    a_info=file.info()
    b_getcode=file.getcode()
    c_geturl=file.geturl()
    print(a_info)
    print(b_getcode)
    print(c_geturl)

    file_2=urllib.request.quote("http://www.baidu.com.cn")
    print(file_2)

    file_3=urllib.request.unquote("http%3A//www.baidu.com.cn")
    print(file_3)


  • 相关阅读:
    微信小程序
    如何在微信小程序中使用骨架屏
    Nlog打印日志到Influxdb数据库
    C#通过模板导出Word的两种方法(超简单)
    VS2019制作的安装包,默认安装到C盘快捷方式无法打开
    orcale数据库还原备份
    Thread 类创建线程
    Quartz.NET
    DataTable ,使用详细。
    Unity3D 学习
  • 原文地址:https://www.cnblogs.com/kwkk978113/p/12870832.html
Copyright © 2020-2023  润新知