◯こちらのサンプルコードは指導等にご自由にお使いください。
【サンプルコードの使い方】
◯サンプルコードを写す時はコピペをしないようにしましょう。
◯▶を押すと出力が表示されます。
◯Geminiボタンを押すとGemini(AI)による解説が表示されます。間違っていることもあるので、疑問に思った場合はご質問ください。
◯本マークを押すとカテゴリーの解説が見られます。
◯サンプルコードを写す時はコピペをしないようにしましょう。
◯▶を押すと出力が表示されます。
◯Geminiボタンを押すとGemini(AI)による解説が表示されます。間違っていることもあるので、疑問に思った場合はご質問ください。
◯本マークを押すとカテゴリーの解説が見られます。
【カテゴリーごとのページへ移動】
【Code List】
CODE: h-1 (スクレイピング)
import requests from bs4 import BeautifulSoup URL = "https://python.hisakatano.com/?page=column" def main(): res = requests.get(URL) soup = BeautifulSoup(res.text, "html.parser") title_text = soup.find("title").get_text() print(title_text) return(0) main()

- pip install beautifulsoup4 でインストール。
- スクレイピングには多少のHTMLの知識が必要。ブラウザにもよるが、右クリックして「検証」や「要素を調査」をすることで必要な情報が手に入る。
- 通常のページのスクレイピングについては、利用規約などで禁止されていないか必ず確認しよう。また、サーバへの負荷を軽減させるために、高頻度のアクセスはやめよう。
- 参考サイト1
CODE: h-2 (スクレイピング)
import requests from bs4 import BeautifulSoup URL = "https://python.hisakatano.com/?page=column" def main(): res = requests.get(URL) soup = BeautifulSoup(res.text, "html.parser") lists = soup.find_all("li", class_="column_title") titles = [] for li in lists: a = li.find("a") titles.append(a.text) print(titles) return(0) main()

- URLのサイトにブラウザでアクセスして、取得したいデータの箇所 (商品名) の上で右クリック->「検証」or「要素を調査」すると、以下のような情報が出てくるはず。
<li class="column_title"><a href="?page=column&no=0">【if文】 Pythonの「もしも」を操る魔法:if文を徹底解説!</a></li>
- 上記の情報を元に、find_all()の引数を決めていく。
CODE: h-3 (スクレイピング)
import requests from bs4 import BeautifulSoup import re URL = "https://python.hisakatano.com/?page=column" def main(): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100', 'Accept-Language': 'ja,en;q=0.9,en-GB;q=0.8,en-US;q=0.7' } res = requests.get(URL, headers=headers) soup = BeautifulSoup(res.text, "html.parser") lists = soup.find_all("li", class_="column_title") titles = [] for li in lists: a = li.find("a") pattern = r'【(.*?)】' word = re.findall(pattern, a.text)[0] titles.append(word) print(titles) return(0) main()

- ヘッダー情報を付与することで、ボット対策されているサイトにもアクセスが可能となる。
- headersの記述はわからないところもあると思うが、まずはそのままコピペで使ってOK。
- 正規表現を用いて、【】で囲まれた単語を取得している。
- 参考サイト1



