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

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

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

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

Q&A

解決済

1回答

1801閲覧

スクレイピングコードに関するしつもん

harapeko

総合スコア13

スクレイピング

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

0グッド

0クリップ

投稿2018/11/17 06:13

編集2018/11/17 11:16

wantedlyのサイトのスクレイピングをしているのですがBeautifulSoupを使用する部分がよくわかりません。

soup = BeautifulSoup(data,"lxml") #find_allで、classが"project-title"のh1タグを全て取得する articles = soup.find_all("h1", class_ = "project-title") soup

ここの soup = BeautifulSoup(data,"lxml")というコードがインスタンスの生成のためのコード、というのは調べてわかったのですが具体的にどのような意味なのかがわからず、また3行目にsoupを再び出力している理由もわかりません。

以下、コード全文になります。ご回答よろしくお願いいたします。

python

1#ブラウザを開く 2#driver_path の部分に、"/usr/local/bin/chromedriver"を代入 3driver = webdriver.Chrome("/usr/local/bin/chromedriver") 4 5#webページを開く 6driver.get("https://www.wantedly.com") 7 8#classを指定し、HTMLの要素にアクセス(driver.find_element_by_class_name('ui-show-modal')までのコード) 9#.clickで、取得した要素に対して「ボタンをクリックする」というアクションを起こす 10#★'ui-show-modal'の部分がよくわからないため、確認。 11driver.find_element_by_class_name('ui-show-modal').click() 12 13#nameで取得 14#.send_keysで、要素にキーボード入力 15#user[email],user[password]にアクセスし、それぞれMAIL,PASSに渡す 16driver.find_element_by_name('user[email]').send_keys(MAIL) 17driver.find_element_by_name('user[password]').send_keys(PASS) 18driver.find_element_by_name('commit').click() 19 20#{}の部分に1~10の数字を代入し、1ページから10ページまでを開く 21for i in range(1, 10): 22 driver.get("https://www.wantedly.com/?type=mixed&page={}&occupation_types%5B%5D=engineer&hiring_types%5B%5D=mid_career&locations%5B%5D=%E6%84%9B%E7%9F%A5%E7%9C%8C".format(i)) 23# 文字コードをUTF-8に変換 24 data = driver.page_source.encode('utf-8') 25#★soup=BeautifulSoup(data,"lxml")の部分がよくわからず 26#パーサーをlxmlで指定する 27 soup = BeautifulSoup(data,"lxml") 28 #find_allで、classが"project-title"のh1タグを全て取得する 29 articles = soup.find_all("h1", class_ = "project-title") 30 soup 31 32 for article in articles: 33 each_url.append("https://www.wantedly.com/" + article.find("a").get("href"))

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

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

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

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

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

y_waiwai

2018/11/17 06:57

このままではコードが読めないので、質問を編集して、<code>ボタンで、’’’の枠の中にコードを貼り付けてください
guest

回答1

0

ベストアンサー

ここの soup = BeautifulSoup(data,"lxml")というコードがインスタンスの生成のためのコード、というのは調べてわかったのですが具体的にどのような意味なのかがわからず

data という HTML ソースを lxml というパーサーを使用して解析し、BeautifulSoup オブジェクト soup を作成しています。

soup = BeautifulSoup(data,"lxml")

また3行目にsoupを再び出力している理由もわかりません。

ここは特になにも意味はないです。なくてよいです。

投稿2018/11/17 12:05

tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問