![45ef7b58febad9316bc47652c685508f.png](https://i-blog.csdnimg.cn/blog_migrate/79c11c3f7ff38faaf382e0e4c8394595.jpeg)
- 前言:
本次爬取的是新浪微博移动端(https://m.weibo.cn/),爬取的数据是用户微博首页的第一条微博(如下图),包括文字内容、转发量、评论数、点赞数和发布时间,还有用户名和其所在地区(后面可以分析不同地区微博用户的关心的热点话题)。
![6f0deeb8d91914177baa241fc4a16b8f.png](https://i-blog.csdnimg.cn/blog_migrate/0bdc0dca8f221583dc2995cbf9827264.jpeg)
- 开发工具
Python版本:3.6 相关模块:
import scrapy
from sinaweibo.items import SinaweiboItem
import json
import re
import copy
- 分析网页
浏览发现使用的是使用Ajax渲染的网页,微博数据(https://m.weibo.cn/api/container/getIndex?containerid=102803_ctg1_5088-ctg1_5088&openApp=0&since_id=1)存储在json格式网页中,所以思路是先通过微博数据得到用户url(如下图),再来爬取后续内容。
![f4396b32b57031ea70e438cea2ccca71.png](https://i-blog.csdnimg.cn/blog_migrate/45aca9cc2b963a1fa8159f92a5836aba.jpeg)
获取第一条微博数据 也是使用了Ajax渲染的网页,跟上面一样找到网页入口就行了。请求网址如下:
![7006d9cb9f79ff8d31bf7ec247f2fe7a.png](https://i-blog.csdnimg.cn/blog_migrate/c2fb7571d45bd487c8a2c1f11eeff1f8.png)
这样看网址的话毫无规律可言,简化后发现 https://m.weibo.cn/api/container/getIndex?containerid=1076032554757470就可以进入。而且containerid=107603(***)这里,括号里的数字刚好是用户的id号,因此我们可以通过这个来构造网页。
- 获取用户所在地区
用户所在地在其基本资料中,如下图
![8f95c1b1b5bc30d4ffa8f5677a923268.png](https://i-blog.csdnimg.cn/blog_migrate/69e8e4d9e5ce077f124617a4ef7c842a.jpeg)
地址为:
![da23101f20d23c90a7f1bc6fee68b494.png](https://i-blog.csdnimg.cn/blog_migrate/941c871a4ff6723c3b18ed3044fa87bf.png)
同样进行简化得到:https://m.weibo.cn/api/container/getIndex?containerid=230283(***)-INFO其中括号里面是用户i