我正在嘗試使用 Beautifulsoup 抓取房地產資料,但是當我將抓取結果保存到 .csv 檔案時,它只包含第一頁中的資訊。我想抓取我在“pages_number”變數中設定的頁數。
# How many pages
pages_number =int(input('How many pages? '))
# inicializa o tempo de execu??o
tic = time.time()
# Chromedriver
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
#initial link
link = 'https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page=1'
driver.get(link)
# creating looping pages
for page in range(1,pages_number 1):
time.sleep(15)
data = driver.execute_script("return document.getElementsByTagName('html' [0].innerHTML")
soup_complete_source = BeautifulSoup(data.encode('utf-8'), "lxml")
我已經嘗試過此解決方案,但出現錯誤:
link = 'https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page={}.format(page)'
有誰知道可以做什么?
完整代碼
https://github.com/arturlunardi/webscraping_vivareal/blob/main/scrap_vivareal.ipynb
uj5u.com熱心網友回復:
我看到您使用的網址僅屬于第 1 頁。
https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page=1
您是否在代碼中的任何位置更改它?如果沒有,那么無論您獲取什么,它都只會從第 1 頁獲取。
你應該這樣做:
for page in range(1,pages_number 1):
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
#initial link
link = f"https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page={page}"
driver.get(link)
time.sleep(15)
data = driver.execute_script("return document.getElementsByTagName('html' [0].innerHTML")
soup_complete_source = BeautifulSoup(data.encode('utf-8'), "lxml")
driver.close()
測驗輸出(不是湯部分) - 用于pages_number = 3(存盤在串列中的 url,以便于查看):
['https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page=1', 'https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page=2', 'https://www.vivareal.com.br/aluguel/sp/sao-paulo/?__vt=lnv:a&page=3']
Process finished with exit code 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/411716.html
標籤:
上一篇:記錄元素出現在螢屏上的時間
