私は車のモデルの名前をウェブサイトに表示されているようにしようとしていますが、何らかの理由で(次のすべてを試した後に)うまくいかないようです。文字列の右側の余分なテキストを削除するにはどうすればよいですか?
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.carsales.com.au/cars/results?offset=12"
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
model_name = soup.find_all('a', attrs={'data-webm-clickvalue':'sv-view-title'})
final_model_name = model_name[1]
clean_model_name = final_model_name.text
clean_model_name = clean_model_name.replace("\r", "")
clean_model_name = clean_model_name.replace("\n", "")
clean_model_name = clean_model_name.strip()
clean_model_name = clean_model_name.rstrip()
print(clean_model_name)
また、私はその後、ストリップ機能で解析されますが、それのMY14要素は車の年に基づいて自動的に変更私は(働く)を削除したい文全体を格納する変数を作成しました。毎年変数を作成するのは効率的ではないようです。
いくつかのインデックスはしかし、他の人が(全体のスクロール)以下を返し、クリーンな結果を返す:
2014 Holden Cruze SRi Z Series JH Series II Auto MY14 Manufacturer Marketing Year (MY) The manufacturer's marketing year of this model.
私は車のモデルの後に詳細のいずれかを必要としない - 研究の後、strip()
は、ホワイトスペースを削除する必要があります(ただしこの場合はそうではありません)、rstrip()
はすべてを右に削除する必要があります(ただしこの場合はそうではありません)。
私は正常にforループを作成しました。追加の不要なテキストのためにDataFrameの一部の行が拡張されます。
'.rstrip()'と '.strip()'は空白文字(印字不能文字)のみを取り除きますが、テキストは削除されません。 –
ありがとう、Burhanとその件についてお詫び申し上げます。改正案を感謝します。特定の文字の後にテキストを削除できますか?IE:私の状況でこれを行うことはできますか? – AdrianC
はい、そのために正規表現を調べる必要がありますが、重要なことは、スクラップが機能しなくなるこの特定のリスティングについて特別なものを見つけ出す必要があることです。元のウェブサイトからの単なるエラーであれば、この特定のケースを検出し、対処するためのコードを書く方法を見つけなければなりません。あるいは、パースした結果が十分に堅牢ではない場合は、それと。 –