美文网首页
爬虫"搜狗微信公众号"遇到的一些问题——Re

爬虫"搜狗微信公众号"遇到的一些问题——Re

作者: Ugly_K | 来源:发表于2016-12-13 21:06 被阅读97次

    一直都觉得微信公众号是爬虫的理想对象,获取到的对象url在手机上展示非常的赞,广告排版都在能接受的范围内,正好最近2练手python爬虫,果断的上了。

    首先分析一下搜狗微信公众号的手机端:

    Chrome

    这里的请求非常简单 分析之后可以发现基本就是:

    url='http://weixin.sogou.com/wapindex/wap/0612/wap_9/%d.html'%i

    变换的也就是后面的数字

    然后正常使用requests去请求:

    response=requests.get(url,headers=mergedHeaders)

    然后就乱码了,这里我尝试了很多解码方式,但是都解决不了,当然最后折腾了好久之后发现是html的gzip压缩问题,在网络上查询基本都是urllib2的解决办法

    重新查询requests的官方文档发现了我需要的:

    requests官方文档

    很明显,这里说了使用response.content方法

    Requests会自动解码gzip,不过返回的是byte内容,所以我们只需要将byte to String 就可以了,好,尝试一下

    转换方法:

    def byteToString(byteData):

    '''

    将byte转化为String

    :parambyteData:

    :return: String

    '''

    returnBytesIO(byteData).read().decode()

    然后请求内容:

    response=requests.get(url,headers=mergedHeaders)

    ifresponse.headers['Content-Encoding']=='gzip':

    result=BytesIO(response.content).read().decode()

    returnresult

    else:

    returnresponse.text

    问题解决

    问题解决

    相关文章

      网友评论

          本文标题:爬虫"搜狗微信公众号"遇到的一些问题——Re

          本文链接:https://www.haomeiwen.com/subject/slvbmttx.html