• Python爬虫学习(1)


    1、Get方法

    这里包含一个爬取百度图片,并保存本地的小爬虫……(包含关于Get方法补充的细节)

    #Authors:xiaobei
    
    import urllib.request
    import urllib.parse
    
    url = 'http://baidu.com/index.html'
    url_2 = 'http://file02.16sucai.com/d/file/2014/0704/e53c868ee9e8e7b28c424b56afe2066d.jpg'
    
    # 假如参数有很多
    name = 'Jane'
    age = '18'
    sex = '女'
    height = '180'
    
    data = {
        'name':name,
        'age':age,
        'sex':sex,
        'height':height,
        }
    # urlencode提供参数封装和url标准编码
    query_string = urllib.parse.urlencode(data)
    url = url + '?' + query_string			# Get方式构建请求对象
    print(url)
    # 伪装自己的头部(简单防反爬)
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.42 Safari/537.36'
        }
    # 构建Get请求对象
    request = urllib.request.Request(url = url_2,headers = headers)
    reponse = urllib.request.urlopen(url = request)
    print(reponse.read(100))
    urllib.request.urlretrieve(url_2,'baidu_image.jpg') # retrieve 检索,取回,获取 (将URL内容保存在文件制定文件路径中),可独立与urlopen()
    ## url 只能由特定的字符组成,如果出现其他字符 ,比如:¥、$、空格、中文等,就要对其编码
    ## ret = urllib.parse.quote(url)        # 编码成标准url
    ## ret1 = urllib.parse.unquote(url_2)   # 将标准url翻译成通俗格式
    ## print('ret',ret)
    ## print('ret1',ret1)
    # reponse:urlopen()用法
    ##1. print(reponse.read(100).decode())
    ##2. print(reponse.readlines(5).decode())
    ##3. print(reponse.geturl())
    ##4. print(reponse.getheaders())
    ##5. print(reponse.getcode())
    
    

    爬取图片如下:

    来源于网络

    2.Post方法

    关于百度翻译返回内容的简单爬取(不作数据解析)

    #Authors:xaiobei
    
    import urllib.request
    import urllib.parse
    
    post_url = 'https://fanyi.baidu.com/sug'
    word = input('请输入要查询的单词:')
    
    # 构建Post表单
    form_data = {
        'kw':word,
        }
    # 处理post表单数据
    form_data = urllib.parse.urlencode(form_data).encode()# 两次encode但意义不同
    # 构建请求头
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.42 Safari/537.36',
        }
    # 构建请求对象
    request = urllib.request.Request(url = post_url,headers = headers)
    # 发送请求数据
    response = urllib.request.urlopen(request,data = form_data)# post提交需要参数data,data为字节型
    print(response.read().decode())
    
    

    运行效果如下:

    0

  • 相关阅读:
    css修炼宝典
    衡量优秀的卓越的前端工程师
    Bootstrap 快速人门案例——前端最火的插件
    前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
    前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
    小米路由器未授权访问漏洞
    linux下更改ssh登录前的banner信息
    centos下编译安装Openssl
    S2-032代码执行
    SSRF漏洞学习
  • 原文地址:https://www.cnblogs.com/slz99/p/12527720.html
Copyright © 2020-2023  润新知