美文网首页Python学习资料整理
使用python抓取百度漂流瓶妹纸照片

使用python抓取百度漂流瓶妹纸照片

作者: 9ba4bd5525b9 | 来源:发表于2019-03-18 15:41 被阅读43次

    1.分析

    首先打开抓包神器 Fiddler ,然后打开漂流瓶首页,加载几页试试,在Fiddler中过滤掉图片数据以及非 http 200 状态码的干扰数据后,发现每一页的数据获取都很有规律,这就给抓取提供了便利。具体获取一页内容的url如下:

    http://tieba.baidu.com/bottle...

    看参数很容易明白,page_number 就是当前页码,page_size 就是当前页中包含的漂流瓶数量。

    访问后得到的是一个json格式的数据,结构大致如下:

    内容很直白一眼就看出,bottles 中的数据就是我们想要的(thread_id 瓶子具体id, title 妹纸吐槽的内容, img_url照片真实地址),遍历 bottles 就可以获得当前页的所有漂流瓶子。(其实现在得到的只是封面图哦,打开具体的瓶子有惊喜,因为我比较懒就懒得写了,不过我也分析了内部的数据,具体url是:http://tieba.baidu.com/bottle...瓶子thread_id>)

    还有一个参数 has_more 猜测是是否存在下一页的意思。

    到这里采集方式应该可以确定了。就是从第一页不停往后循环采集,直到 has_more 这个参数不为 1 结束。

    2.编码

    这里采用的是 python2.7 + urllib2 + demjson 来完成此项工作。urllib2 是python2.7自带的库,demjson 需要自己安装下(一般情况下用python自带的json库就可以完成json解析任务,但是现在好多网站提供的json并不规范,这就让自带json库无能为力了。)

    demjson 安装方式 (windows 不需要 sudo)

    sudo pip install demjson

    或者

    sudo esay_install demjson

    2.1获得一页内容

    2.2根据url保存图片数据

    全部代码如下

    相关文章

      网友评论

        本文标题:使用python抓取百度漂流瓶妹纸照片

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