zoukankan      html  css  js  c++  java
  • 使用requests库发起gbk编码的get请求

    有一个爬虫,查询需要发起get请求,这个网站整个都是gbk编码
    如果直接发起请求,是不可以的,因为请求参数q首先用utf8编码转化成bytes,然后将bytes进行URLEncode变为字符串。

    resp=requests.get("http://haha.com",params={
        "q":"你好"
    })
    print(resp.url)
    

    第一种解决方法:直接使用bytes,而不用字符串,则可以避免将字符串用utf8编码

    res = requests.get("http://www.baidu.com", params={
        'q': bytes('天下大势为我所控', 'gbk')
    })
    

    第二种解决方法,直接拼串

    url="http://www.baidu.com/"+requests.utils.quote("天下大势为我所控",encoding='gbk')
    requests.get(url)
    

    第三种解决方法,使用PreparedRequest

    from requests.models import PreparedRequest 
    p=PreparedRequest()
    s=p.prepare_url("http://www.baidu.com",params={
        'q':bytes('天下大势为我所控','gbk')
    })
    print(p.url)
    

    作为一个纯python的库,requests还是很值得研究的。

  • 相关阅读:
    浅谈Tarjan算法及思想
    浅谈前向星
    线段树初步
    树状数组的简单运用
    字典树(trie树)的指针简单实现pascal
    排序专辑
    POJ 2155 Matrix (矩形)
    区间动态规划
    hdu-2795 Billboard---线段树
    hdu-1754 I Hate It---线段树模板题
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/8088085.html
Copyright © 2011-2022 走看看