pythonとbeautifulsoupでのスクレイピングについての質問です。
求人情報をスクレイピングしていきたいのですが、タイトル(業種、項目)とサラリー(値段)
を一つとしてまずはコマンドに出力させたいです。
しかし現状の書き方だとエラーが出てしまいます。
from
1import requests 2result=requests.get('https://www.indeed.com.mx/jobs?q=ingeniero&l=irapuato') 3soup=BeautifulSoup(result.text,'html.parser') 4title_html_list=soup.find_all('div', class_='title' ) 5title_html_list_salary=soup.find_all('div',class_="salarySnippet salarySnippetDemphasize") 6 7for title_html , salary in title_html_list , title_html_list_salary : 8 name= title_html.a.get_text() 9 salario=salary.get_text() 10 print(name,salario) 11 12コード
これをコマンド実行
すると
line 8, in <module>
for title_html , salary in title_html_list , title_html_list_salary :
ValueError: too many values to unpack (expected 2)
となります。そもそもこの
ValueError: too many values to unpack (expected 2)
というエラーが出るので変数に代入して2つを出力しようと試みたのですができません。
なぜでしょうか??
ちなみに二つのリストを分けて出力させれば
from bs4 import BeautifulSoup
import requests
result=requests.get('https://www.indeed.com.mx/jobs?q=ingeniero&l=irapuato')
soup=BeautifulSoup(result.text,'html.parser')
title_html_list=soup.find_all('div', class_='title' )
title_html_list_salary=soup.find_all('div',class_="salarySnippet salarySnippetDemphasize")
for title_html in title_html_list :
name= title_html.a.get_text()
print(name)
for list_salary in title_html_list_salary :
salary=list_salary.get_text()
print(salary )
問題なしに出力されます。
初歩的な課題なのでしょうが、調べてもわからないので教えていただけると嬉しいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー