3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

俺たちは何を間違えているのか?

Last updated at Posted at 2019-07-16

##はじめに
Qiitaの記事を読んでいて、たまに目にする「お前らの ~~ は間違っている」
というタイトル。
様々な内容について私たちの間違いを指摘してくれているが、私たちはどんなジャンルのものを間違えてしまうのだろう。
と思ったので、Pythonを使ってどんなタグについてよく間違えているのか抽出してみた。

##開発環境
macOS Mojave 10.14.5
Python 3.7.3
beautifulsoup4
matplotlib
##コード
実際に書いたコードをこちらに添付する。
コードの中身としては、検索URLベタ書きしてスクレイピングを行うだけの簡単なものになっている。

getQiita.py
import time
import json
import urllib.request
import numpy as np
import collections
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup

paging = 1
first = 'title:'+'お前ら'
second = 'title:'+'間違っている'
speace = ' '
tagText = []

#検索文字をパース
parseFirst = urllib.parse.quote(first)
parseSecond = urllib.parse.quote(second)
parseSpeace = urllib.parse.quote(speace)

def getSoup(page):
    url = 'https://qiita.com/search?page='+str(paging)+'&q='
    #URL作成
    scrap = urllib.request.urlopen(url + parseFirst + parseSpeace +parseSecond)
    #取得したURLでBeautifulSoupを使う
    soupbase = BeautifulSoup(scrap)
    return soupbase

soup = getSoup(paging)
#webページをタグで検索
itemCount = soup.find("span", attrs= {"class":"badge"})
#ページ数の取得(切り上げ)
maxPaging = -(-int(itemCount.text) // 10)+1

for i in range(paging,maxPaging):
    #ページング用
    paging = i
    soup = getSoup(paging)

    tagList = soup.find_all("li", attrs={"class": "tagList_item"})
    #tagList_itemのテキストを取得
    for tags in tagList:
        tagText.append(tags.text)
    #スクレイピング間隔を開ける
    time.sleep(1)

#取得したタグを降順にソートして10位以上のものを取得
countTags = collections.Counter(tagText).most_common(10)
for k,v in countTags:
    plt.bar(k,v)

#matplotlibを用いて結果のグラフを出力
plt.title('間違えているランキング')
plt.xlabel('登録タグ')
plt.ylabel('登場回数')
plt.show()

##出力結果
実行結果は棒グラフとして出力される。
「おまえらの」 「間違っている」をタイトルに含む投稿の上位10タグは以下の通りとなった。
Figure_1.png

##感想
全然投稿されてない思っていたよりも投稿された記事数が少なかったです。
普段目にしていたのは検索エンジンの方だったのかも知れません。
とりあえず書いて動かしてみただけなので、もっと綺麗な書き方があると思います。

ここはこうした方が良い、コードが汚い等の指摘を頂けると筆者の励みになりますので、ぜひお願いします!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?