資料採集與融合技術作業四

102202107發表於2024-11-13

資料採集與融合技術作業四

總倉庫連結

作業1:

要求:
熟練掌握 Selenium 查詢HTML元素、爬取Ajax網頁資料、等待HTML元素等內容。
使用Selenium框架+ MySQL資料庫儲存技術路線爬取“滬深A股”、“上證A股”、“深證A股”3個板塊的股票資料資訊。

程式碼和結果

資料儲存:


def store_data(self, data):
    sql = """
    INSERT INTO stockinfo (bStockNo, bStockName, bLastPrice, bPriceChange, bPriceChangeAmount, bVolume, bTurnover, bAmplitude, bHigh, bLow, bOpen, bPrevClose)
    VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
    """
    try:
        self.cursor.execute(sql, data)
        self.db.commit()
    except mysql.connector.Error as err:
        print("Error inserting data into MySQL:", err)

資料抓取與處理:

 def processspider(self):
        self.connect_to_database()
        trs = WebDriverWait(self.driver, 10).until(
            EC.presence_of_all_elements_located((By.XPATH, "//table[@id='table_wrapper-table']/tbody/tr"))
        )
        for tr in trs:
            # Extract data from each row
            data = (
                tr.find_element(By.XPATH, "./td[position()=2]/a").text,
                tr.find_element(By.XPATH, "./td[position()=3]/a").text,
                tr.find_element(By.XPATH, "./td[position()=5]/span").text,
                tr.find_element(By.XPATH, "./td[position()=6]/span").text,
                tr.find_element(By.XPATH, "./td[position()=7]/span").text,
                tr.find_element(By.XPATH, "./td[position()=8]").text,
                tr.find_element(By.XPATH, "./td[position()=9]").text,
                tr.find_element(By.XPATH, "./td[position()=10]").text,
                tr.find_element(By.XPATH, "./td[position()=11]/span").text,
                tr.find_element(By.XPATH, "./td[position()=12]/span").text,
                tr.find_element(By.XPATH, "./td[position()=13]/span").text,
                tr.find_element(By.XPATH, "./td[position()=14]").text
            )
            self.store_data(data)

執行結果:
image
image
image

心得體會:

加深了我對XPath的理解,能夠更靈活地運用它,無論是在Selenium還是其他框架中。透過將抓取到的資料儲存到資料庫,我對資料庫的操作也更加熟練了。從連線資料庫、執行SQL語句到資料的增刪改查

作業2

熟練掌握 Selenium 查詢HTML元素、實現使用者模擬登入、爬取Ajax網頁資料、等待HTML元素等內容。
使用Selenium框架+MySQL爬取中國mooc網課程資源資訊(課程號、課程名稱、學校名稱、主講教師、團隊成員、參加人數、課程進度、課程簡介)

程式碼和結果

思路:

執行結果:

心得體會:

作業3:

    要求:爬取中國大學2021主榜(https://www.shanghairanking.cn/rankings/bcur/2021)所有院校資訊,並儲存在資料庫中,同時將瀏覽器F12除錯分析的過程錄製Gif加入至部落格中。

程式碼和結果

執行結果

心得體會:

相關文章