成功抓取后(僅用于學習和個人目的),我嘗試將記錄插入到資料庫中。但我有一個問題:
并非所有記錄都插入資料庫表中,但每個 for 回圈僅插入一 (1) 條記錄。我想將此鏈接中的 20 家具樂部的完整串列輸入到表格中,但只保存了 1 條記錄而不是 20 條記錄。在我的情況下,應該輸入 40 條記錄(意甲 20 條,意乙 20 條),但是只有 2 個被輸入到資料庫中。相反,控制臺中的刮擦成功發生并顯示所有內容
我知道錯誤是什么以及我錯在哪里(無需評論錯誤),但我無法解決它。你能告訴我如何解決嗎?我剛開始使用 Python,如果你能告訴我代碼,否則我可能不會理解。謝謝
#SCRAPING
#SerieA
driver.minimize_window()
driver.get("https://www.diretta.it/serie-a/classifiche/")
time.sleep(20)
for SerieA in driver.find_elements(By.CSS_SELECTOR, "a[href^='/squadra'][class^='tableCellParticipant__name']"):
SerieA_text = SerieA.text
print(SerieA_text)
driver.close
#SerieB
driver.minimize_window()
driver.get("https://www.diretta.it/serie-b/classifiche/")
time.sleep(15)
for SerieB in driver.find_elements(By.CSS_SELECTOR, "a[href^='/squadra'][class^='tableCellParticipant__name']"):
SerieB_text = SerieB.text
print(SerieB_text)
driver.close
#INSERT IN DATABASE
con = sqlite3.connect('DATABASE.db')
cursor = con.cursor()
records_added_Risultati = 0
Values = ((SerieA_text,), (SerieB_text,))
sqlite_insert_query = 'INSERT INTO Squadre_Campionato (Nome_Squadra) VALUES (?);'
count = cursor.executemany(sqlite_insert_query, Values)
con.commit()
print("Record inserted successfully ", cursor.rowcount)
records_added_Risultati = records_added_Risultati 1
cursor.close()
uj5u.com熱心網友回復:
您傳遞給 executemany 運算子的 Values 引數只有兩個元素:
值 = ((SerieA_text,), (SerieB_text,))
有關如何使用 executemany 的示例,請參閱以下鏈接:https ://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html
第二個引數應該是需要插入表中的所有行的串列。
該代碼應通過初始化值空串列[]開始,然后在for回圈插入元組,你是從提取: https://www.diretta.it/serie-a/classifiche/ 的https:// WWW .diretta.it/serie-b/classifiche/
#SCRAPING
#SerieA
Values = []
driver.minimize_window()
driver.get("https://www.diretta.it/serie-a/classifiche/")
for SerieA in driver.find_elements(By.CSS_SELECTOR, "a[href^='/squadra'][class^='tableCellParticipant__name']"):
SerieA_text = SerieA.text
print(SerieA_text)
Values.append(tuple([SerieA_text]))
driver.close
#SerieB
driver.minimize_window()
driver.get("https://www.diretta.it/serie-b/classifiche/")
time.sleep(15)
for SerieB in driver.find_elements(By.CSS_SELECTOR, "a[href^='/squadra'][class^='tableCellParticipant__name']"):
SerieB_text = SerieB.text
print(SerieB_text)
Values.append(tuple([SerieB_text]))
driver.close
for i in range(len(Values)):
print(Values[i])
#INSERT IN DATABASE
con = sqlite3.connect('DATABASE.db')
cursor = con.cursor()
records_added_Risultati = 0
sqlite_insert_query = 'INSERT INTO Squadre_Campionato (Nome_Squadra) VALUES (?);'
count = cursor.executemany(sqlite_insert_query, Values)
con.commit()
print("Record inserted successfully ", cursor.rowcount)
records_added_Risultati = records_added_Risultati 1
cursor.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/336554.html
