🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Beautiful Soup

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

Python

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

pandas

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

Q&A

1回答

841閲覧

複数の値をもつリストを分割して扱いたい

DoryHeadech

総合スコア2

Beautiful Soup

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

Python

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

pandas

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

0グッド

0クリップ

投稿2021/01/20 04:49

前提・実現したいこと

day ファイル名  LINK 
January 17, 2021   A     urla
January 17, 2021   B     urlb

となる表を作りたい

発生している問題・エラーメッセージ

リンクにファイル名が明記されているので
linkからさらにリプレイスしてファイル名を追加してpandasを利用して
day ファイル名  LINK 
January 17, 2021   A     urla
January 17, 2021   B     urlb
となるようにしたいが
day  LINK 
January 17, 2021  urla,urlb
January 17, 2021  urlc  
となってしまう

該当のソースコード

python

1d_list=[] 2 3 4for url in unique_list : 5 res = requests.get(url) 6 res.raise_for_status() 7 soup =BeautifulSoup(res.text, "html.parser") 8 9 c=soup.find("div", attrs={"class": "entry-content"}) 10 urls=[] 11 tag_list = c.select('a[href]') 12 for tag in tag_list: 13 url = tag.get('href') 14 urls.append(url) 15 16 c=soup.find("div", attrs={"class": "entry-meta clear"}) 17 c=c.text 18 c=c.replace('\n', '') 19 day=c.replace('\t', '') 20 21 22 d = {'link': urls, 'days': day,} 23 d_list.append(d) 24d_list 25 26[{'days': 'January 18, 2021', 27 'link': ['https://www.-A.html', 28 'https://www.B.mp4.html']}, 29 {'days': 'January 17, 2021', 30 'link': ['https://www.-A.mp4.html', 31 'https://www.-B.mp4.html', 32 'https://www.-C.mp4.html']},

試したこと

リンク取得部分を変更すればいいのか?取得後のリストを加工すればいいのか方法がわかりません。参考となるアドバイス宜しくお願い致します。   

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

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

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

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

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

guest

回答1

0

先にdayを取得して、urlsは使わずにurl取得後そのままd_listに加えていってはいかがでしょうか。(動作確認はしてません)

python3

1d_list=[] 2 3 4for url in unique_list : 5 res = requests.get(url) 6 res.raise_for_status() 7 soup =BeautifulSoup(res.text, "html.parser") 8 9 c=soup.find("div", attrs={"class": "entry-meta clear"}) 10 c=c.text 11 c=c.replace('\n', '') 12 day=c.replace('\t', '') 13 14 c=soup.find("div", attrs={"class": "entry-content"}) 15 tag_list = c.select('a[href]') 16 for tag in tag_list: 17 url = tag.get('href') 18 d = {'link': url, 'days': day,} 19 d_list.append(d) 20d_list

投稿2021/01/22 05:28

jeanbiego

総合スコア3966

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問