見出し画像

スクレイピングで暮らしのマーケットを網羅した話

こんばんは、stです。
本日は、趣味と実益を結びつけるためにやってるpythonについて少し書きます。

本日のお題は、ウェブスクレイピングです。当初、pythonをやり始めたのは、ウェブスクレイピングで金儲けしたくて、やり始めましたが、
如何せん。実益につながらず、なぁなぁでやってたところがあります。
クラウドワークスで案件見つけては、出来るかな?っと練習しながら
ポートフォリオにかきたいなぁっといろいろ調整している毎日です。

1.なぜ暮らしのマーケットなのか?


ぶっちゃけなんでもいいです。ただ、クラウドワークスの中に、
偶々、暮らしのマーケットでスカルピングしたいという案件を見つけたのが発端です。
やってみると面白いものを見つけました。
CTOのトザワさんだそうです。。久々に聞いたよ。CTO。
前職でなんか、偉そうにしてた、CTOがいたなぁって。たかだか、
一発当てたくらいででね。当時まだ社会人3年目くらいで、
なんやあいつくらいな気持ちでしたよ。まぁどうでもいいか。(笑)
こんな露骨な人いるんすね。

CTOみずからお出迎え。(笑)最初めっちゃ笑いました。

2.スクレイピングどう?

結論、めっちゃちょろいっす。
ほんの2時間くらいで、いろんな情報集められるところまで来れました。

左がHP それ以外がpythonでエクセルに出力させた結果。

下にコード書いておきます。

import requests
import urllib from bs4 
import BeautifulSoup
import csv
import pandas as pd
import time

def Main(url):
'''Entry Point.
Args:
    url:    target url.
'''
news_data = [["news"]]
news1_data = [["link_url"]]
num1 = 1
while num1 <= 10:
    urlmain = url + str(num1)+'&'
    html = requests.get(urlmain, headers=headers)
    soup = BeautifulSoup(html.content,"html.parser")
    for x in range(49):
        x = x + 1
        service = 'service-details' + str(x)
        soup1 = soup.find(id = service)
        try:
            re = soup1.get("href")
            link_url = urllib.parse.urljoin(urlmain,re) 
            news1_data.append([link_url])
            #print(link_url)
        except AttributeError :
            break

    time.sleep(5)    
    num1 += 1 
f = open("test.csv", "w",encoding='utf-8') 
writecsv = csv.writer(f, lineterminator='\n')
writecsv.writerows(news1_data)
#CSVファイルを閉じる。
f.close()
# CSVファイルの読み込み
df = pd.read_csv('test.csv') 
# Excel形式で出力
df.to_excel('test.xlsx', encoding='utf-8',index=False)
if name == 'main':
   print('完了')

#下を実行#

Main('https://curama.jp/accessible-home-renovation/?page=')

#実行後にさらに実行#
df = pd.read_csv('test.csv') 
news2_data = []

for i in df["link_url"]:
    comment1 = []
    html = requests.get(i, headers=headers)
    soup = BeautifulSoup(html.content,"html.parser")
    soup1 = soup.find(class_="wor-w_b-w ove_h tex-a_j")
    soup1 = soup1.text
    #print(soup1)
    soup1 = soup1.replace('。','。\n').replace('!','!\n')
    #print(soup1)
    news2_data.append(soup1)  
    time.sleep(3)
df1 = pd.DataFrame(news2_data)
df1.columns = ["comment"]

#print(df1)
result = pd.concat([df1, df], axis=1)
result.to_excel('test2.xlsx', encoding='utf-8',index=False)


こんな感じのエクセルが吐き出される。

3.最後に

これを改造、実行化ファイルにして売り出したら需要あるかな?
一応吐き出されるエクセルを貼っておきます。
こんな感じのnote記事結構面白いかも。(笑)


この記事が気に入ったらサポートをしてみませんか?