、分析夕日の赤の古い年齢グループを公開情報をクロールWeiboユーザーが最高のチャートジェイである、あなたは彼らの本当の年齢を教えて!

「として前にいくつかの時間ジェイはリストヒットトピックは、」すぐに急上昇マイクロブログに乗り込み
cxkファンがデータをマイクロブロギングないジェイ疑問を呈しているため
(ジェイがオープンマイクロブログをしませんでした)
その結果、多くの年のための国の無数の隠されたコーナーは
ジェイを立つことができなかった高齢者の粉末があることを始めましたオープン強制
ここに画像を挿入説明
ので、ジェイ・カイ徐くん鉄VS中年粉末
戦争がリストを打つ響きのマイクロブログは、
ジェイのを聞いているので、長年
のファンは古い頭をプルダウンする必要があり
、米マイクロブログ00周目xiaonianqingた
ゼロの学習からデータを行う方法
ここに画像を挿入説明

まず、需要の背景

iKunはジェイの夕日の赤の古い年齢層のファンであると述べている
ここに画像を挿入説明
今日、我々は戦うために、彼らは言う、強さに直面したデータを使用しますが、中年の粉末ではない彼らが最後にiKunジェイのファンを見てみましょう!

第二に、機能説明

爬虫類がクロールして#周杰伦超话#自分のプロファイル情報、年齢、地域、性別やその他の情報へのアクセス、およびデータ解析、可視化して、プレゼントをクロール、その後、下のマイクロブログを!

注:テキストはマイクロブログWeiboプロファイル情報は、公開情報で全文は誰の個人情報は表示されませんが、唯一の学習のための情報を分析し、任意の個人情報が含まれていない、何人が、このチュートリアルの使用を用いてはならないと言います商用利用のために、結果と犯罪者が支払います!

第三に、技術的なプログラム

私たちは、おそらく技術的な手順の下に分解し、そして技術の使用

  1. クロール#周杰伦超话#の下でマイクロブログ
  2. 各ユーザーの情報は、クロールマイクロブログ
  3. csvファイルに情報を保存します
  4. ユーザの年齢、性別分布を使用してデータ解析
  5. 分布の地域のファン
  6. 最高のチャートのマイクロブログのコンテンツを使用してWordの雲解析

私たちが使用できるデータをクロールrequests库、我々は組み込みのライブラリ使用してCSVファイルを保存することができますcsv使用する超簡単に紹介するために、ライブラリの、データ解析と可視化をpyechartsまあ、我々は技術を実現するために始めることができる技術選択の後に!

第四に、マイクロブログの単語の上にクロール

1.データをロードし、その後、スーパーURLを検索します

我们在谷歌浏览器(chrome)中找到#周杰伦超话#页面,然后调出调试窗口,改为手机模式,然后过滤请求,只查看异步请求,查看返回数据格式,找到微博内容所在!
ここに画像を挿入説明
微博请求链接:https://m.weibo.cn/api/container/getIndex?jumpfrom=weibocom&containerid=1008087a8941058aaf4df5147042ce104568da_-_feed

2.代码模拟请求数据

拿到链接我们就可以模拟请求,这里我们还是使用我们熟悉的requests库。简单几句便可以获取微博!
ここに画像を挿入説明

3.提取微博内容

我们可以看到返回的数据是一个json格式的,我们一层一层寻找,就可以找到微博内容、用户id所在!
ここに画像を挿入説明
了解微博返回的数据结构之后我们就可以将微博内容和id提取出来啦!
ここに画像を挿入説明

4.批量爬取微博

在我们提取一条微博之后,我们便可以批量爬取微博啦,如何批量?当然是要分页了?那如何分页,这里猪哥再教大家一遍寻找分页参数技巧:

查找分页参数技巧:比较第一次和第二次请求url,看看有何不同,找出不同的参数!给大家推荐一款文本比较工具:Beyond Compare

比较两次请求的URL发现,第二次比第一次请求链接中多了一个:since_id参数,而这个since_id参数就是每条微博的id!

微博分页机制:根据时间分页,每一条微博都有一个since_id,时间越大的since_id越大所以在请求时将since_id传入,则会加载对应话题下比此since_id小的微博,然后又重新获取最小since_id将最小since_id传入,依次请求,这样便实现分页

了解微博分页机制之后,我们就可以制定我们的分页策略:我们将上一次请求返回的微博中最小的since_id作为下次请求的参数,这样就等于根据时间倒序分页抓取数据

ここに画像を挿入説明
然后写一个for循环调用上面那个方法就可以啦

# 批量爬取
    for i in range(1000):
        print('第%d页' % (i + 1))
        spider_topic()

四、爬取用户信息

批量爬取微博搞定之后,我们就可以开始爬取用户信息啦!

首先我们得了解,用户基本信息页面的链接为:https://weibo.cn/用户id/info,我们以某**喜欢唱、跳、rap还有篮球**的同学主页为例子!
ここに画像を挿入説明
所以我们只要获取到用户的id就可以拿到他的公开基本信息!

1.获取用户id

回顾我们之前分析的微博数据格式,发现其中便有我们需要的用户id!
ここに画像を挿入説明
所以我们在提取微博内容的时候可以顺便将用户id提取出来!
ここに画像を挿入説明

2.模拟登录

我们获取到用户id之后,只要请求https://weibo.cn/用户id/info 这个url就可以获取公开信息了,但是查看别人用户主页是需要登录的,那我们就先用代码模拟登录!

我们之前爬取豆瓣的时候,已经教过大家如何模拟登录了,这里就直接放出代码!
ここに画像を挿入説明
登录我们使用的是requests.Session()对象,这个对象会自动保存cookies,下次请求自动带上cookies!

3.爬取用户公开信息

拿到用户id又登录之后,就可以开始爬取用户公开信息啦!
ここに画像を挿入説明
这里公开信息我们只要:用户名、性别、地区、生日这些数据!所以我们需要将这几个数据提取出来!
ここに画像を挿入説明
爬取用户信息不能过于频繁,否则会出现请求失败(响应状态码=418),但是不会封你的ip,其实很多大厂 不太会轻易的封ip,太容易误伤了,也许一封就是一个小区甚至更大!

五、保存csv文件

微博信息拿到了、用户信息也拿到了,那我们就把这些数据保存起来,方便后面做数据分析!

我们之前一直是保存txt格式的,因为之前都是只有一项数据,而这次是多项数据(微博内容、用户名、地区、年龄、性别等),所以选择CSV(Comma Separated Values逗号分隔值)格式的文件!
ここに画像を挿入説明
我们生成一个列表,然后将数据按顺序放入,再写入csv文件!
ここに画像を挿入説明
看看生成的csv文件,注意csv如果用wps或excel打开可能会乱码,因为我们写入文件用utf-8编码,而wps或excel只能打开gbk编码的文件,你可以用一般的文本编辑器即可,pycharm也可以!
ここに画像を挿入説明

六、数据分析

数据保存下来之后我们就可以进行数据分析了,首先我们要知道我们需要分析哪些数据?

  1. 我们可以将性别数据做生成饼图,简单直观
  2. 将年龄数据作出柱状图,方便对比,看看到底是不是夕阳红老年团
  3. 将地区做成中国热力图,看看哪个地区粉丝最活跃
  4. 最后将微博内容做成词云图,直观了解大家在说啥

1.读取csv文件列

因为我们保存的数据格式为:’用户id’, ‘用户名’, ‘性别’, ‘地区’, ‘生日’, ‘微博id’, ‘微博内容’,的很多行,而现在做数据分析需要获取指定的某一列,比如:性别列,所以我们需要封装一个方法用来读取指定的列!
ここに画像を挿入説明
这里猪哥还使用了Counter类来统计词频,方便后面数据分析,他返回的格式为:{‘女’: 1062, ‘男’: 637}。

2.可视化库pyecharts

在我们分析之前,有一件很重要的事情,那就是选择一个合适可视化库!大家都知道Python可视化库非常多,之前我们一直在用matplotlib库做词云,matplotlib做一些简单的绘图非常方便。但是今天我们需要做一个全国分布图,所以经过猪哥对比筛选,选择了国人开发的pyecharts库。选择这个库的理由是:开源免费、文档详细、图形丰富、代码简介,用着就是一个字:爽!

po一张他们的官方文档图片
ここに画像を挿入説明
这里有非常详细的例子,直接复制过来就可以运行得到图片!
ここに画像を挿入説明

3.分析性别

选择了可视化库之后,我们就来使用吧!
ここに画像を挿入説明
这里说下为什么生成的是html?因为这是动态图,就是可以点击选择显示的,非常人性化!执行之后会生成一个gender.html文件,在浏览器打开就可以!
ここに画像を挿入説明
ここに画像を挿入説明
效果图中可以看到,在打榜的粉丝中女性多于男性,女性占比大概为62%!

4.分析年龄

この1は本当に赤い夕焼けのファンが行う、より心配ですか?
ここに画像を挿入説明
ここに画像を挿入説明
私たちは、上の図ことがわかった90:メイン力としては、ジェイ最高のチャートです!

5.エリア

私たちは最高のチャートのファンの州の分布を見てみましょう!
ここに画像を挿入説明
私たちがいることを見ることができる上に、図広州、北京、上海に:最高のチャート3つの省(直轄市)のほとんどは、以下のように

6.最高のチャートの内容分析

のは、ファンが言っているこれらの最高のチャートを見てみましょう!
ここに画像を挿入説明
図は、いくつかの分析現れ事業、高齢者、ミルクティー:面白い言葉を!

最高のチャートのファンがハッハッハ、彼は年上であると考えているようです!
ここに画像を挿入説明

七つの概要

メイン力の面で結果から、まだジェイ最高のチャート80,90のファンで、結局、元の若者ああ、しかし、女の子よりも男の子、広東省の地域のヒットリストのほとんどのファン!

テクニカル分析今日から、この例では、シーナマイクロブロギングのページングメカニズムを学ぶために多くの新しいものがあり、公共のユーザー情報をクロール、ファイルを保存するために、CSVライブラリを使用し、pyecharts行うデータの可視化を使用します!

もちろん、真ん中には多くの問題に遭遇した、唯一のあなたが個人的に知っているしようと、紳士は、GitHubの上でソースコードを入れている(https://github.com/pig6/sina_topic_spiderまたは元のテキストを読むためにクリック)は、興味のある学生は、コレクションを転送することを忘れないでください新鮮な味の時間!

おすすめ

転載: www.cnblogs.com/pig66/p/11299011.html