昨天定義了所有找到內容的規則,下一步就是如何應用、對每個找到的內容進行解析。
同樣的,也是參照獲取影片詳細超連結的辦法添加圖片。
後面添加每個內容時,都要考慮其特殊性,比如添加片名,就要考慮其有可能既有中文名,又有英文名,所以再給其加個條件語句。
定義兩個變量 :中文標題 ctitles ,外標題 otitles。
注意要去掉英文標題前面的斜槓,使用 replace 將斜槓替換成空格。
另外,添加影片概述,要考慮有的片子沒有概述的情況。
添加影片相關內容時,要去掉一些不要的符合以及空格。
最後,使用 datalist.append(data) ,把處理好的一部電影信息放入 datalist 即可。
列印一下,看看效果。
可以清楚的看到電影連結、圖片連結、電影中文名、外國名、評分、評價人數、一句話概述、相關信息介紹等內容全部都獲取到了。
當然,也能看到還有些符號沒有去除乾淨,這個問題不大。
至此,數據解析、提取工作,成功突破!
總結:
整個標籤解析工作,使用的是 Beautiful Soup 庫,它能提供一些簡單的、Python式的用來處理導航、搜索、修改分析樹等功能,通過解析文檔為用戶提供需要抓取的數據。
我們需要的每個電影都在一個<div>的標籤中,且每個div標籤都有一個屬性 class = 「item」。
soup = BeautifulSoup(html, "html.parser")這個語句,就是創建 BeautifulSoup 對象,html為頁面內容,html.parse 是一種頁面解析器。
for item in soup.find_all("div", class_="item"):這個循環,是為了找到能夠完整提取出一個影片內容的項,即頁面中所有樣式是item類的div。
所有內容解析後,使用了正則表達式進行提取。
正則表達式,通常被用來檢索、替換那些符合某個模塊(規則)的文本。
Python 中使用 re模塊 操作正則表達式。
這種一環套一環的感覺,讓我想起了當初和工友搬磚的日子。
下面就該研究如何保存數據了。
保存數據一般有兩種方式:一種是在excel裡面保存,另一種是在資料庫進行保存。
先說第一種。
使用excel表格保存,就需要利用 Python庫 xlwt 將抽取的數據 datalist 寫入 excel表格。
基本思路是以 utf-8 編碼創建一個excel對象,再由它來創建一個sheet表,接下來往單元格裡寫數據,最後保存。
這裡可以將workbook理解成一個excel文件,而worksheet理解成文件中的一個表單。
worksheet中的單元格,本質上就是一個矩陣。
可以看到左面多了一個文件 student.xls ,說明我們創建成功了。
然後這裡老師留了個小作業,讓結合以前學的九九乘法表,用十分鐘時間,將九九乘法表保存在 student.xls 中。
機智如我,用了15分鐘,嗯,果然還是失敗了,鬱悶。
哎,作為40歲的老男人,果然最缺少的,就是靈性了。