Pythonで調べたことを記事にして備忘録としています。皆さんの役に立てれば幸いです。
使用環境
- OS:Windows10
- Python:3.9.7
Pythonバージョンの調べ方は
Windowsではコマンドプロンプトを開き【python -V】を打ち込み実行します。

赤線の数字がPythonのバージョンになります。
a href をスクレイピングする方法
Pythonでスクレイピングをしていると↓のような<a href を取得したくなる時が多々あります。

この場合は下記のコードを用意します。
url = ‘~~~~~~~~~~’
res = requests.get(url)
res.encoding = res.apparent_encoding
soup = BeautifulSoup(res.text,’html.parser’)
urlの~~~には取得したいhref属性のあるurlを打ち込んでください。
例:url = ‘https://www.yahoo.co.jp’
その後、下記コードを用意します。
url_links = soup.find_all(‘a’)
どのページも(‘a’)が大量にあるためfind_allで問題ないと思います。
上のコードだけだと(‘a’)を探すだけなのでfor文で(‘href’)を確認します。
yahooのページを確認すると↓のようになります。
for link in url_links:
print(link.get(‘href’))

これですべて取得できました。
うん。。。取得できた。。。できたけど。。。
不要なものまで取得してしまっている。。。。
と、なると思います。
なので、if分を使用して(https://news.yahoo.co.jp/pickup)から始まっているurlを取得します。

コードは↓のようになります。
for link in url_links:
if link.get(‘href’).startswith(‘https://news.yahoo.co.jp/pickup/’) == True:
print(link.get(‘href’))

startswith(‘https://news.yahoo.co.jp/pickup/’) で最初の文字が
(https://news.yahoo.co.jp/pickup)から始まっているurlのみを取得しています。
終わりの文字を確認するにはendswithを使用します。
まとめ
soup.find_all(‘a’)で全ての項目を探し出し
for文・if文・startswithを使用して取得したいurl抽出もできました。
コメント