スクレイピングで取得した記事のリストから余分な \r\n を削除させたいのですが、次のエラーを吐き出してしまいました。
AttributeError: 'list' object has no attribute 'replace'
使用環境
GoogleCrome 86.0.4240.75(64bit)
JupyterLab 2.1.5
JupyterLabのノートブックでプログラムを記述
問題の記事はこのようになります。
#!/usr/bin/env python # coding: utf-8 from bs4 import BeautifulSoup import urllib.request as req import pandas as pd import numpy as num import re url = "https://www.msn.com/ja-jp" response = req.urlopen(url) soup = BeautifulSoup(response, 'html.parser') lists = soup.find_all(href=re.compile("/ja-jp/news")) #パスはサイトの右下に表示される lists[1:21] select = [] url_select = [] for list in lists: select.append(list.string) url_select.append(list.attrs['href']) selected = select.replace('\r\n','') selected
最後のselect.replace
を、select.strip()
としてみたり、select.re(r'(.+)\r\n')
としてみましたが、エラーはいずれも上記の通りでした。
エラーの意味を察するに、指定のオブジェクトは属性を持たないということでしょうか? だとしても、どのように対処すればいいのか分かりません。
どうかお力をいただきますように、なにか分かれば教えていただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/17 16:27
2020/10/17 16:37
2020/10/17 17:07