背景・目的
5chは多くの利用者の意見が掲載されており、大変参考になるものがいくつかあります。
そういった有用性の高い内容にもかかわらず、Googleの検索ではなかなかヒットしないといったことがあります。そういった内容をまとめることで、質の高い情報にアクセスすることが出来るようになる人を増やすために意見をまとめるプログラムを作成したいと考えております。
方法
まとめ記事の自動作成にはWebスクレイピングの技術が必要です。
Webスクレイピングは色々な開発言語でライブラリが提供されており、比較的簡単に実装することができます。
特にPython は文法が簡単でなおかつ Beautiful Soup という強力なライブラリが提供されているのでお勧めです。
処理の流れ
処理の大まかな流れは以下の通りです。
Webスクレイピングで2ch掲示板からスレッド内容を取得
取得したデータにソート/フィルター等の加工処理を行いまとめ記事を作成
作成したまとめ記事をブログにアップロード
1・2 の処理は上述の Python + Beautiful Soup を、3 の処理はWebブラウザの自動操作が必要なので JavaScript(Node.js) + Puppeteer の組み合わせを選択しました。
使用環境としては下記を使用しています。
JupyterLab Version 2.1.5
Selenium
Mac OS Catalina 10.15.2
Google Chrome 86.0.4240.75
<参考記事>
- スクレイピングで5chの書き込みを取得したいができない
- 5ch(旧2ch)をスクレイピングして、過去流行ったネットスラングの今を知る
- PythonでLet’s Webスクレイピング! ①任意の要素の抽出
- 【Python】BeautifulSoupとRequestsでURLから本文を取得する
- データ収集から機械学習まで全て行って競馬の予測をしてみた
ライブラリに関して
・Beautiful Soup
シンプルかつわかりやすい。内部パサーを目的に応じて切り替えられる。
・lxml
非常に多機能。初めて使うには戸惑うかも
最初に一つだけ使い方を覚えるのであればこれがおすすめ
・pyquery
JavaScriptライブラリのJQueryと同じようなインターフェイスでスクレイピングできる。
・urllob.request
Webページを手軽に取得できるが、HTTPヘッダーをカスタマイズしたり、Basic認証を使ったりする複雑な処理にはあまり向いていない。
・Request
HTTPヘッダーの追加やBasic認証もできる
・urllib
基本的なGETやPOSTのリクエストのみであれば簡単に使える。
・Java Scriptのスクレイピング
SeleniumとPhantomJSが一般的
APIに関して
●5ch
・スクレイピングをすることに違法性はなさそう
●グーグル
【Google Ads API】Google APIからキーワードアイデア取得【Python】
実行した方法
wget ”URL”/ -o index.html でindex.htmlを作成
<狙いの動作>
Request → beautiful soup →
<実際の動作>
wget → beautiful soup →
●文字列の囲い??
<span class=”escaped”> </span>
●バックリンクをたどるか??
<span class=”back-links”></span>
●関連キーワードを指定してから文章を作成する
<キーワードプランナーからの抽出>
Google検索ボリュームをPythonで自動取得。GoogleAdsAPIを使ってみた。
【Python(1)】Googleキーワード検索ボリュームを自動取得しよう。
<頻出単語を取得>
【コード公開】【Python】テキストマイニングしてみた〜ジョブズのスピーチでWordCloudを作ろう
【コード公開】【Python】テキストマイニングしてみた〜形態素解析〜
AIコードで記述する
213デフォルトの名無しさん (ワッチョイ ff9f-ufYE)2022/10/04(火) 06:51:23.40ID:jZxsvBQn0
https://aiprogrammer.hashlab.jp/
ウェブスクレイピングで、aタグを取得し、そのaタグをcsvファイルに出力するコードを作成してください。
import csv
from bs4 import BeautifulSoup
with open(“sample.html”) as f:
soup = BeautifulSoup(f, “html.parser”)
csv_file = open(“output.csv”, “w”, encoding=”utf-8″)
writer = csv.writer(csv_file)
for a in soup.find_all(“a”):
writer.writerow([a.text, a.get(“href”)])
csv_file.close()
記事ごとの要約
scrape_by_bs4-3.py ・・・ aリンクとタイトル出力
scrape_by_bs4-4.py ・・・ テキストをファイルへ出力
【Excel】CSVファイルを開いたら文字化け発生!「Power Query」で文字コードを指定して取り込みましょう
〇別の試み
【AI】ブログ記事をGPT-3で要約しておしゃべりひろゆきメーカーで読み聞かせしてみた
■資格取得に関してのおすすめ記事
・資格取得のその先… まず第一に「資格」自体取得したところであまり意味をなしません。資格取得はゴールではなく稼ぐための手段なのです
・学歴・資金・資格なしでも人生を一発逆転できる方法とは
・仕事で成果を上げるために必要な2つの「仕事の構造化」と「仕事のシステム化」について
・仕事が楽しくなる!!! 仕事を効率的にこなし、楽しくやりがいをもつために必要なスキルとは
・Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座