python
1import requests
2from bs4 import BeautifulSoup
3import pandas as pd
4
5
6url='https://tabelog.com/tokyo/A1303/A130301/13003367/dtlrvwlst/'
7
8req=requests.get(url)
9soup = BeautifulSoup(req.content, "html.parser")
10
11l = []
12
13comments = soup.find_all('div', class_="rvw-item__visit-contents")
14for c in comments:
15 date_div = c.find('div', class_='rvw-item__date')
16 comment_div = c.find('div', class_='rvw-item__rvw-comment')
17 l.append([date_div.find('p').text.strip(),comment_div.find('p').text.strip()])
18
19df = pd.DataFrame(l,columns=['date','comments'])
20df.head(2)
21
22"""
23date comments
240 2020/11訪問 渋谷の名店『はやし』に初訪問。 2003年11月オープンなので気が付けば19年も経っていた(...
251 2019/08訪問 2019年8月平日12:15到着。外並び12名程。35度の灼熱の中、皆様並んでます。真夏の昼...
26"""
参考: BeautifulSoup4のチートシート(セレクターなど)
食べログはスクレイピングが禁止ではないみたいなので、とりあえずやってみました。
ソースコードを確認したところ、divでコメントが分かれていましたので、当該classをBeautifulSoupを利用して抽出しています。
soup.find_all()
の結果はlistなので、for
で各要素内の日付とコメント本文を空のlistに入れて行って、最後にpandasのデータフレームにしています。
必要に応じてCSV等にしてもらえればいいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。