Posted at

まだPythonista3使ってないの?ースクレイピング編ー

More than 1 year has passed since last update.

今回は簡単めなスクレイピングについてやりたいと思います。


事前準備

事前準備としてStaShのインストールが必要です。

StaShはPythonista3の中で使えるシェルです。

Pythonista3の基本操作とStaShのインストールについてはこちらを参考にしてください。

まだPythonista3使ってないの?ー基本操作・StaShインストール編ー


beautiful soupをpythonista3にインストール

StaShで、beautiful soupをインストールしていきます

pip install BeautifulSoup


コードを書いていく

ココナラのリクエストボードのタイトルと依頼内容を取得したいと思います。

※ココナラはCtoCのお仕事依頼のサービスです。リクエストボードとは、〇〇をしたいんですけど、誰か仕事引き受けてくれませんか?っていうリクエストをするところです。


とりあえず、やってみた

最初に書いてみたコードはこんな感じです。

image.png

コピペしたい方はこちら

import numpy as np

import urllib. request from bs4
import Beautiful Soup
import matplotlib.pyplot as plt import re

target_url = 'https://coconala.com/ smartphone/requests'
html = urllib. request.urlopen(target_url).read()
root = Beautiful Soup(html, 'html5lib')

titles = root.find_all(class_=' requestdetail-title')
for title in titles:
print(title.string)

出力結果はこちら

(なぜか曲の作成が2つあるけど、まあいいや・・・)

image.png

このときのリクエストボードの様子がこちら

image.png


もう少しだけ頑張ってみた

タイトルと内容を取得します。

image.png

コピペしたい方はこちらのコードを参考にしてください。

import numpy as np

import urllib.request
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
import re

target_url = 'https://coconala.com/smartphone/requests'
html = urllib.request.urlopen(target_url).read()
root = BeautifulSoup(html, 'html5lib')

requests = root.find_all(class_='request')

for request in requests:
title = request.find(class_='request-detail-title').string
content = request.find(class_='request-detail-content').string
print('【リクエスト】\n' + title + '\n' + content + '\n\n\n\n')

出力結果はこんな感じ

なぜか空白があるけどそれは置いといて・・・。

image.png


おわりに

実はあんまりpython勉強したことがなくてこれからなんですけど、スマホでちょっとしたスキマ時間にできるのでおすすめです。

他のpythonista3についての記事はこちら

まだPythonista3使ってないの?ー基本操作・StaShインストール編ー

※書いたら随時更新していきます