zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    sql server 数据库可疑处理方法。
    执行gpedit.msc 提示找不到程序
    uni-app Post springboot 后台接收数据为null 解决办法
    组件接口升级商品编码文件
    mysql 拼接字符
    mysql 截取前7位
    为什么具有编程思维的孩子更容易成功?孩子为什么要学编程?你想要的答案都在这儿!
    利用支持MicroPython的TPYBoard开发板自制PM2.5检测仪(萝卜教育学科式编程)
    Micropython教程实例之USB-HID应用(萝卜学科编程)
    教程Micropython自制小型家庭气象站(萝卜教育)
  • 原文地址:https://www.cnblogs.com/hsinfo/p/13618555.html
Copyright © 2011-2022 走看看