前提・実現したいこと
スクレイピングで、a要素のhrefを取り出し、配列の文字にある'msg/'の文字を取り除いて表示したいです。
https://tenshoku.mynavi.jp/search/list/
上記のサイトにある「▶︎詳細をみる」にあるhrefを取り出したいと考えています。
現状、スクレイピングすることはできていいますが、要素が2つずつスクレイピングされてしまいます。
なぜなのかわからないため、教えていただきたいです。
最後の数字の部分が2ずつ出力されてしまいます。
発生している問題・エラーメッセージ
https://tenshoku.mynavi.jp//jobinfo-248825-1-4-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=1 https://tenshoku.mynavi.jp//jobinfo-248825-1-4-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=1 https://tenshoku.mynavi.jp//jobinfo-220100-1-31-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=2 https://tenshoku.mynavi.jp//jobinfo-220100-1-31-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=2 https://tenshoku.mynavi.jp//jobinfo-184770-1-48-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=3 https://tenshoku.mynavi.jp//jobinfo-184770-1-48-1/?ty=rzs&searchId=1209225192&pageNum=1&showNo=3 https://tenshoku.mynavi.jp//jobinfo-161900-1-281-1/?ty=0&searchId=1209225192&pageNum=1&showNo=4 ・ ・ ・
該当のソースコード
python
1from bs4 import BeautifulSoup 2import requests 3 4res = requests.get('https://tenshoku.mynavi.jp/search/list/') 5res.raise_for_status() 6soup = BeautifulSoup(res.text, "html.parser") 7elems = soup.select('.linkArrowS') 8 9for elem in elems: 10 elem_rink = elem.get('href') 11 if 'msg/' in elem_rink: 12 elem_rp = elem_rink.replace('msg/', '') 13 print('https://tenshoku.mynavi.jp/' + elem_rp) 14 else: 15 print('https://tenshoku.mynavi.jp/' + elem_rink) 16
試したこと
・elseを外した。
補足情報(FW/ツールのバージョンなど)
ifの条件がtrueの時はifの中身が実行されてelseの中身が実行されず、繰り返し処理をすると思っているのですが、間違っているのでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。