zoukankan      html  css  js  c++  java
  • python里更推荐使用的requests库

    标准库urllib缺少了一些关键的功能,非标准库的第三方库urllib3提供了,比如说连接池管理。

    import urllib3
    
    url = 'https://movie.douban.com'
    ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    
    # 连接池管理器
    with urllib3.PoolManager() as http:
        response = http.request('GET', url, headers={'User-Agent': ua})  # 在这里可以声明GET方法
    
        print(type(response))  # <class 'urllib3.response.HTTPResponse'>
        print(response.status, response.reason)  # 200 OK
        print(response.headers)  # 响应头信息
        print(response.data)  # 响应信息

    requests库使用了urllib3,API更加友好;默认使用Session对象,保留客户端和服务器多次交互中的会话信息(例如cookie)。

    import requests
    
    ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    urls = ['https://www.baidu.com/s?wd=magedu', 'https://www.baidu.com/s?wd=magedu']
    
    session = requests.Session()
    
    with session:
        for url in urls:
            response = session.get(url, headers={'User-Agent': ua})
            with response:
                print(type(response))  # <class 'requests.models.Response'>
                print(response.url)  # 真正访问的url
                print(response.status_code)  # 200
                print(response.headers)  # 响应的头部
                print(response.cookies)  # 两次访问同一网站的cookies不同
                print(response.request.headers)  # 两次访问网站的请求头信息里,第一次没有cookies信息,第二次携带有cookies信息。说明session对象会保存上一次访问该网站的cookies信息。可以躲过通过cookies信息识别进行反爬虫的网站
                print(response.text)  # HTML的内容;返回的为str类型,不需要做json转换
  • 相关阅读:
    Python-05 基础语法-函数
    使用单个命令安装 WSL 现在可在 Windows 10 版本 2004 及更高版本中使用
    java.sql public interface ResultSet
    Selecting Contents for Uber JAR
    【初次使用h0遇到的一些问题】
    关于Swagger-UI下的渗透实战
    CTF—MISC—USB键盘流量分析
    k8s之路-Rancher
    单元测试
    flutter开发中设置模拟器一直悬浮在ide上方
  • 原文地址:https://www.cnblogs.com/hongdanni/p/10489292.html
Copyright © 2011-2022 走看看