我想獲取一個汽車模型的名稱,因爲它出現在網站上,但由於某種原因(嘗試以下所有內容後),它似乎不起作用。如何刪除字符串右側的多餘文本?
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()
應該刪除一切權利(但在這種情況下,事實並非如此)
我已經成功地創建一個循環通過各車廂的循環在這頁面,但DataFrame中的某些行由於其他不需要的文本而被擴展。
'.rstrip()'和'.strip()'只刪除空格(不可打印的字符),它們不會刪除文本。 –
謝謝,布爾漢和爲這個問題道歉。讚賞修正案。你可以刪除某些字符後的文本 - IE:我們可以在我的情況下做到這一點? – AdrianC
是的,您需要查看正則表達式 - 但更重要的是,您需要弄清楚此特定列表的特殊含義,從而導致您的掃描不起作用。如果這只是原始網站的錯誤,那麼您必須找出一種方法來檢測這個特定的案例並編寫代碼來處理它 - 或者如果它是由於您的解析不夠健壯,您需要處理接着就,隨即。 –