回覆列表
  • 1 # Bean毛豆

    python爬取網易財經的個股財務資料,所需要的步驟和普通網頁的爬取步驟相類似,唯一要注意的是大公司的網站,可以認證系統比較多,需要你破解一下。

    Python訪問網易財經網站-無需驗證

    如果網站是不需要驗證的,那我們就可以很輕鬆就能訪問到對應網站的網頁進而爬取相應的內容。一般我們透過requests模組就可以做到,形如:

    import requestshtml = requests.get("http://www.a-hospital.com/w/%E4%B8%AD%E6%97%A5%E5%8F%8B%E5%A5%BD%E5%8C%BB%E9%99%A2")Python訪問網易財經網站-需要驗證

    這個就相對於來說複雜的程度有輕有重,簡單點的只需要我們新增一下http的headers頭部資訊,比如像下面這樣的:

    再複雜的就需要研究網頁的證書,當然網易財經雖然可以登入,但是對於提到的問題需要爬取的資料,是可以不需要登入的,所以網站登入這一塊的驗證就不需要研究。

    網站登入後的網頁分析,使用Python對網頁資料進行解析

    在前面步驟的基礎上,已經實現了登入,那接下來我們就需要研究如何解析頁面,這就需要我們對網頁的結構相當的瞭解,然後利用正則表示式或者特定的包進行html解析。

    比如,提問中提到的利潤表資料,我們找到對應頁面中的內容,如下顯示:

    如上圖顯示,然後我們透過檢視原始碼,點選右鍵->檢視網頁原始碼,CTRL+F查詢一下利潤表在原始碼中是否存在,如果存在表示你就不需要再動其它腦筋了,如果不存在你就要好好研究一下頁面中的JS呼叫。幸運的是,這部分資料是在原始碼中就存在的。

    接下來就是利用相應的模組比如lxml模組,對網頁的結構進行解析,將其中的資料解析出來,然後按照一定的格式儲存在Python的元組中。以便更新到資料庫中的表裡。

    Python解析後的資料插入/更新到mysql中

    首先,需要我們在Mysql中建立相應的表,即表的模型設計;

    其次,需要我們根據表的結構,利用python將資料寫入到對應的表中。在這裡需要說明的是,連線Mysql可以使用MySQLdb模組,即import MySQLdb就可以連線上Mysql的資料庫,進而進行資料的相關操作。

  • 中秋節和大豐收的關聯?
  • 小腿手臂痠痛-手臂肌肉不自覺的跳動是怎麼回事?