• Python request请求


    1.基础请求框架

    from urllib import request
    url=r"http://www.baidu.com"
    req=request.Request(url)    #构造请求
    response=request.urlopen(req).read().decode()   #获取响应
    print(response)

    2.自定义header

    from urllib import request
    import re
    headers={
        "User-Agent":"Mozilla/5.0"
    }
    url=r"http://www.baidu.com"
    req=request.Request(url,headers=headers)    #构造请求
    response=request.urlopen(req).read().decode()   #获取响应
    pat=r"<title>(.*?)</title>"     #正则匹配规则
    data=re.findall(pat,response)   #正则匹配筛选
    print(data)

    3.利用随机数随机更换agent

    from urllib import request
    import re
    import random
    
    #将多个user-agent值放入list
    agentlist=["Mozilla/5.0",
               "Mozilla/5.0",
               "Mozilla/5.0"]
    #利用随机数随机取一个agent
    agent=random.choice(agentlist)
    print(agent)
    headers={
        "User-Agent":agent
    }
    url=r"http://www.baidu.com"
    req=request.Request(url,headers=headers)    #构造请求
    response=request.urlopen(req).read().decode()   #获取响应
    pat=r"<title>(.*?)</title>"     #正则匹配规则
    data=re.findall(pat,response)   #正则匹配筛选
    print(data)


    urlopen是一个特殊的opener(模块构建的)

    urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高级功能。

    要支持这些功能:通过request.build_opener()方法创建自定义opener对象。

    使用自定义的opener对象,调用open()方法发送请求。

    如果程序里所有请求都使用自定义opener,可以使用request.install_opener()将自定义的opener对象定义为全局opener,表示如果之后凡是调用urlopen,都将使用这个opener。

    from urllib import request
    import re
    headers={
        "User-Agent":"Mozilla/5.0"
    }
    url=r"http://www.baidu.com"
    #构建HTTP处理器对象(专门处理HTTP请求的对象)
    http_hander=request.HTTPHandler()
    #创建自定义opener
    opener=request.build_opener(http_hander)
    #创建自定义请求对象
    req=request.Request(url,headers=headers)
    #发送请求,获取响应
    response=opener.open(req).read().decode()
    pat=r"<title>(.*?)</title>"
    data=re.findall(pat,response)
    print(data)
    #把自定义opener设置为全局,这样用urlopen发送的请求也会使用自定义的opener
    request.install_opener(opener)
    
    #此时的urltopen也会使用自定义的opener
    test=request.urlopen(req)
  • 相关阅读:
    IIS中ASP.NET安全配置
    好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
    js取两位小数点
    json格式的ajax传输交互
    js全选与反选
    formdata,ajax提交数据
    js判断是否微信浏览器、IE浏览器
    js实现列表从下往上循环滚动
    绝对定位始终居中
    存储、字符串截取、两端对齐、样式绑定、微信调拨号功能
  • 原文地址:https://www.cnblogs.com/hsinfo/p/13618555.html
Copyright © 2020-2023  润新知