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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

解決済

【Python スクレイピング】複数サイトから抽出した複数のリストを1つのDataFrameに格納したい

flexibler
flexibler

総合スコア23

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1回答

0リアクション

0クリップ

122閲覧

投稿2022/07/25 05:39

編集2022/07/25 05:56

<実現したいこと>

クラウドソーシングサイト『クラウドワークス』『ランサーズ』から『タイトル』『案件の残り時間』『URL』を10件ずつ取得して(ランサーズから5件ずつ、クラウドワークスから5件ずつ)、それらを以下のような1つのDataFrameに格納したいです。
リスト名はクラウドワークス 『d_titleC, d_timeC, d_URL1C 』、ランサーズ『d_titleL, d_timeL, d_URL1L』です

イメージ説明

<コード>

python

import requests from bs4 import BeautifulSoup import pandas as pd #クラウドワークス urlC = 'https://crowdworks.jp/public/jobs/search?search%5Bkeywords%5D=%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0&keep_search_criteria=true&order=new&hide_expired=true' rC = requests.get(urlC) soupC = BeautifulSoup(rC.text) d_titleC = [] d_URL1C = [] d_timeC = [] contentsC = soupC.find_all('div',class_='job_data_row') for i in range(5): try: test1C = contentsC[i].find('h3', class_='item_title') test2C = test1C.find('a') titleC = test2C.text URL1C = test2C.get('href').replace('/p', 'https://crowdworks.jp/p') timeC = contentsC[i].find('div', class_='entry_data expires').text d_titleC.append(titleC) d_URL1C.append(URL1C) d_timeC.append(timeC) except: pass #ランサーズ urlL = 'https://www.lancers.jp/work/search?keyword=%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0&show_description=0&sort=deadlined&work_rank%5B%5D=0&work_rank%5B%5D=1&work_rank%5B%5D=2&work_rank%5B%5D=3' rL = requests.get(urlL) soupL = BeautifulSoup(rL.text) d_titleL = [] d_URL1L = [] d_timeL = [] contentsL = soupL.find_all('div',class_='c-media__content') for i in range(5): try: titleL = contentsL[i].find('a', class_='c-media__title').text if 'NEW' in titleL: titleLNEW = titleL.replace('NEW','') d_titleL.append(titleLNEW) elif '初回' in titleL: titleLShokai = titleL.replace('初回','') d_titleL.append(titleLShokai) else: d_titleL.append(titleL) URL1L = test1L.get('href').replace('/w', 'https://www.lancers.jp/w') d_URL1L.append(URL1L) timeL = contentsL[i].find('div', class_='c-media__content__left').text d_timeL.append(timeL) except: pass

<試したこと>

以下のDataFrameだと1つのマス目に1つのリストが入ってしまいます。例えば「タイトル」列の1行目にクラウドワークスのタイトル5件すべてが入る感じです。ですので、1つのマス目に1件が入るようにしたいです。

python

result = { 'タイトル': [d_titleC, d_titleL], '残り時間': [d_timeC, d_timeL], 'URL': [d_URL1C, d_URL1L] } df = pd.DataFrame(result) df

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。