• python爬虫03 Urllib库


    Urllib

     

    这可是 python 内置的库

    在 Python 这个内置的 Urllib 库中

     

    有这么 4 个模块

     

    request

     

    request模块是我们用的比较多的

     

    就是用它来发起请求

     

    所以我们重点说说这个模块

     

    error

     

    error模块呢,就是当我们在使用 request 模块遇到错了

     

    就可以用它来进行异常处理

     

    parse

     

    parse模块就是用来解析我们的 URL 地址的,比如解析域名地址啦,URL指定的目录等

     

    robotparser

     

    这个用的就比较少了,它就是用来解析网站的 robot.txt

    '''

    import urllib.request

    response=urllib.request.urlopen('http://www.baidu.com')
    print(response.read().decode('utf-8'))
    '''
    from urllib import request,parse
    import ssl

    context=ssl._create_unverified_context()

    url='http://biihu.cc//account/ajax/login_process/'
    headers = {
    #假装自己是浏览器
    'User-Agent':' Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    }
    dict={
    'return_url':'https://bihu.cc',
    'user_name':'xiaoshuaib@gmail.com',
    'passward':'123456789',
    '_post_type':'ajax',

    }
    data=bytes(parse.urlencode(dict),'utf-8')
    req=request.Request(url,data=data,headers=headers,method='POST')

    response=request.urlopen(req,context=context)
    print(response.read().decode('utf-8'))

    我们来模拟登陆

    进入网站进行登录

    
    

     

    
    

    我们来抓一下数据先

    
    

     

    
    

    通过 Fiddler 可以看到我们的请求参数

    然后我们再看看我们的请求头信息

     

    
    

    好了

    
    

     

    
    

    知道这些之后我们就可以来模拟登录了

    
    

     

    
    

    导入 urllib

    
    

     

    
    
    from urllib import request,parse
    import ssl
    
    

     

    
    

    在这里我们还要导入 ssl

    
    

     

    
    

    因为逼乎这个b用的是 https

    
    

     

    
    

    我们可以使用 ssl 未经验证的上下文

    
    

     

    
    
    context = ssl._create_unverified_context()
    
    

     

    
    

    接着定义一下我们的请求 url 和 header

    
    

     

    
    
    url = 'https://biihu.cc//account/ajax/login_process/'
    headers = {
    #假装自己是浏览器
       'User-Agent':' Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    }
    
    

     

    
    

    再定义一下我们的请求参数

    
    

     

    
    
    dict = {
    'return_url':'https://biihu.cc/',
       'user_name':'xiaoshuaib@gmail.com',
       'password':'123456789',
       '_post_type':'ajax',
    }
    
    

     

    
    

    我们把请求的参数转化为 byte

    
    

     

    
    
    data = bytes(parse.urlencode(dict),'utf-8')
    
    

     

    
    

    然后我们就可以封装 request 了

    
    

     

    
    
    req = request.Request(url,data=data,headers=headers,method='POST')
    
    

     

    
    

    最后我们进行请求

    
    

     

    
    
    response = request.urlopen(req,context=context)
    print(response.read().decode('utf-8'))
    
    

     

    
    

    ok

    
    

     

    
    

    这样我们就模拟登录了

    
    

     

    
    

    运行一下看看

    {"rsm":{"url":"https://biihu.cc/home/first_login-TRUE"},"errno":1,"err":null}



    
    



  • 相关阅读:
    Atitit.atiRI  与 远程调用的理论and 设计
    Atitit.提升 升级类库框架后的api代码兼容性设计指南
    Atitit.研发管理软件公司的软资产列表指南
    Atitit.软件开发的三层结构isv金字塔模型
    Atitit.加密算法ati Aes的框架设计
    Atittit.研发公司的组织架构与部门架构总结
    IIS HTTP Error 500.24
    Visual Studio 快捷键
    软件学习遐想
    navigator属性
  • 原文地址:https://www.cnblogs.com/hrnn/p/13304621.html
Copyright © 2020-2023  润新知