微博爬取

须要改进的点:
之间分析的时候在谷歌浏览自带的抓包工具没有显示出ajax响应的数据,让我误觉得是在js中或者是tcp直接发的,其实复制ajax的请求地址在浏览器中直接就能够看到响应内容了,另外明星和普通用户的ajax地址是不同的,这点须要注意下
使用数据库存储,直接写csv文件简单,可是操做起来很不方便,查询亦很差查询
请求获得的data长度小于500后不要直接停掉程序,多是代理ip被识别出来,使用retry再尝试几回
提升爬取效率,再试试线程池和scrapy,不知道scaray哪出问题了html

id 1594052081
超话
https://m.weibo.cn/api/container/getIndex?uid=1594052081&luicode=10000011&lfid=1005051594052081&type=uid&value=1594052081&containerid=2314751594052081
经过这个获取containerid res["data"]["cardlistInfo"]["hide_oids"][0].split(":")[1]
1008083508b653c61b7212de392d3b67cc14a3
而后就能够拼接名人堂的url了,铁杆粉丝的url和名人堂是一级的ajax

名人堂
https://m.weibo.cn/api/container/getIndex?containerid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser&luicode=10000011&lfid=2314751594052081
经过名人堂的url能够获取下面的主持人团队、周贡献榜、粉丝大咖、铁杆粉丝的url
res["data"]["cards"][""]数据库

主持人团队
https://m.weibo.cn/api/container/getIndex?containerid=1073033508b653c61b7212de392d3b67cc14a3_-_ext_super_emcee_team&luicode=10000011&lfid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser
https://m.weibo.cn/p/index?containerid=1073033508b653c61b7212de392d3b67cc14a3_-_ext_super_emcee_team&luicode=10000011&lfid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser
周贡献榜
https://m.weibo.cn/api/container/getIndex?containerid=2311403508b653c61b7212de392d3b67cc14a3_-_contribute&luicode=10000011&lfid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser
粉丝大咖
https://m.weibo.cn/api/container/getIndex?title=粉丝大咖&containerid=1073033508b653c61b7212de392d3b67cc14a3_-_ext_super_fan_big_shot&luicode=10000011&lfid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser
铁杆粉丝
https://m.weibo.cn/api/container/getIndex?containerid=1008083508b653c61b7212de392d3b67cc14a3_-_hotuser&luicode=10000011&lfid=2314751594052081&page=2api

1008083508b653c61b7212de392d3b67cc14a3浏览器

1195230310dom

html请求
https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100306&is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1&pagebar=0&pl_name=Pl_Official_MyProfileFeed__22&id=100306{uid}&script_uri=/hejiong&feed_type=0&pre_page=1&domain_op=100306scrapy

https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100306&is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1&pagebar=1&pl_name=Pl_Official_MyProfileFeed__22&id=100306{uid}&script_uri=/hejiong&feed_type=0&pre_page=1&domain_op=100306
ajax请求
第一个
uid="1594052081",page=2,pagebar=0,prepage=1
第二个
uid="1594052081",page=2,pagebar=0,prepage=2
第三个
uid="1594052081",page=2,pagebar=1,prepage=2tcp

把data的字符串内容,将\/替换为/,将/替换为,将\r、\u200b去掉,将\t变为\t(字符串变为空白),ide

这是我本身抓到的ajax请求,与上面的相似,可是这个彷佛不是通用的

https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100505&profile_ftype=1&is_all=1&pagebar=0&pl_name=Pl_Official_MyProfileFeed__20&id=1005052441769905&script_uri=/u/2441769905&feed_type=0&page=1&pre_page=1&domain_op=100505&__rnd=1554368158520工具

相关文章
相关标签/搜索