質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1520閲覧

【BeautifulSoup4 ✕ lxml】href要素が取得できません。

Kantan.lab

総合スコア22

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/27 14:47

href要素が取得できません。

環境

  • python3
  • BF4
  • lxml

目的

indexページの詳細ページへの20件のリンクを取得したい。

対象URL:https://re-katsu.jp/career/search/kanto/?pagCnt=1

エラー内容

以下コードをでprintすると [] という出力しか帰ってきません。

import requests from bs4 import BeautifulSoup # 各ページURLの取得------------------------ page_lists = [] for page in range(1,3): url = 'https://re-katsu.jp/career/search/kanto/?pagCnt={}'.format(page) page_lists.append(url) # -------------------------- soups = [] for page_list in page_lists: r = requests.get(page_list) soup = BeautifulSoup(r.text, 'lxml') soup = soup.select('.headers > h3 > a[href="../../company/recruit/"]') print(soup)

どなたかご教示お願い致します(´-﹏-`;)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

a要素を直接指定したら取得できました。
hrefs = soups.select('div.headers > h3 > a')

urls = [] for page_list in page_lists: r = requests.get(page_list) #要素を取得 soups = BeautifulSoup(r.text, 'lxml') #Parse指定 hrefs = soups.select('div.headers > h3 > a')

投稿2020/04/29 01:54

Kantan.lab

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

r.textを出力して、.headers > h3 > a[href="../../company/recruit/"]があるかを確認しましょう。

投稿2020/04/27 15:19

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kantan.lab

2020/04/28 02:12

ありがとうございます!存在はしておりました! 少しh3の部分をクラス指定にして`soup = soup.select('.headers > .label-jobcatchcopy')`として、出力するすると、以下のうように抽出できますが、そこからhrefだけ取得したいのですが、 a[href="../../company/recruit/"]に指定すると[ ] な返答になります。 <h3 class="label-jobcatchcopy"> <a href="../../company/recruit/25851/" id="ctl00_ContentPlaceHolder1_rptCmpListCtl_ctl19_CmpListCtl_lblJobCatchCopy" target="_blank">【システムエンジニア】★応募者全員と面接★未経験から最大6ヶ月の研修で育てます≪資格取得率98%≫</a> </h3>]
otn

2020/04/28 12:46 編集

a[href="../../company/recruit/"] という要素が無いですよ。 a[href="../../company/recruit/25851/"] のことであれば、そう指定しましょう。
Kantan.lab

2020/04/28 16:57

部分一致だと認識していました.. ですが、やはりすべて指定しても出力されないですね。
Kantan.lab

2020/04/29 01:55

@otn さん 自己解決できました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問