Pyhonの社内勉強会に参加した
スクレイピング、クローリング
社内で行われたBeautifulSoupを使ってスクレイピングとクローリングの勉強会に参加しました。
前準備
phyon3とpip3が使えていること!
下記のライブラリを使うのでインストールする
pip3 install requests
pip3 install beautifulsoup4
pip3 install lxml
スクレイピング
とりあえず全部取ってみる
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
print(soup)
一部のタグを1個だけとる
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
title = soup.find('title')
print(title)
要素を1個だけ
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
title = soup.find('title').text
print(title)
タグの中のオプションを1個だけとる
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
a = soup.find('a')
link = a.attrs['href']
print(link)
複数のリンクタグを取得する
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
a = soup.find_all('a')
print(a)
複数のリンクタグをみやすく表示
import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
a_link = soup.find_all('a')
for a in a_link:
text = a.text
href = a.attrs['href']
print(text + "のリンク先" + href)
hrefがかけているサイトのリンクを取得
import requests
from bs4 import BeautifulSoup
url = "https://ja.wikipedia.org/wiki/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
a_link = soup.find_all('a')
for a in a_link:
text = a.text
if 'href' in a.attrs:
href = a.attrs['href']
print(text + "のリンク先" + href)
要素を指定して範囲を絞る
import requests
from bs4 import BeautifulSoup
url = "https://ja.wikipedia.org/wiki/"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')
a_link = soup.find('div',{'id' : 'bodyContent'}).find_all('a')
for a in a_link:
text = a.text
if 'href' in a.attrs:
href = a.attrs['href']
print(text + "のリンク先" + href)