爬取豆瓣電影信息保存到Excel

来源:http://www.cnblogs.com/royfans/archive/2017/09/04/7474662.html
-Advertisement-
Play Games

1 from bs4 import BeautifulSoup 2 import requests 3 import html.parser 4 from openpyxl import Workbook,load_workbook 5 import os 6 class DouBan(object... ...


 1 from bs4 import BeautifulSoup
 2 import requests
 3 import html.parser
 4 from openpyxl import Workbook,load_workbook
 5 import os
 6 class DouBan(object):
 7 
 8     def __init__(self):
 9         self.url = 'https://movie.douban.com/'
10         self.header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
11 
12     def openUrl(self, url):
13         response = requests.get(url,headers=self.header)
14         return response
15 
16     def getUrl(self):
17         response = self.openUrl(self.url)
18         douban_html = response.text
19         # print(douban_html)
20         soup = BeautifulSoup(douban_html,'html.parser')
21         hrefs = soup.select("li.poster > a")
22         return hrefs
23         # for href in hrefs:
24         #     print(href['href']
25     def getMsg(self):
26         hrefs = self.getUrl()
27         for num,href in enumerate(hrefs):
28             msg_list = []
29             print(href['href'])
30             response = self.openUrl(href['href'])
31             html_mover = response.text
32             soup = BeautifulSoup(html_mover,'html.parser')
33             all_info = soup.select('div#content')
34             # print(all_info)
35             title = all_info[0].select('h1')[0].text.replace('\n','')
36             msg_list.append(title)
37             # print(title)
38             info = all_info[0].select('#info')[0].text
39             msg_list.append(info)
40             # print(info)
41             describe = all_info[0].select('div#link-report span')[0].text.replace(' ','')
42             msg_list.append(describe)
43             # print(describe)
44             # return title,info,describe
45             for col in range(3):
46                 self.saveMsg(num+1, col+1,  msg_list[col])
47 
48     def saveMsg(self, row_, column_,msg):
49         # msg = self.getMsg()
50         # a = os.path.exists('//move_msg.xlsx')
51         # if a=False:
52         #     os.mkdir('move_msg.xlsx')
53         
54         wb = load_workbook('move_msg.xlsx')
55         sheet = wb.active
56         sheet.cell(row=row_, column=column_).value = msg
57         wb.save('move_msg.xlsx')
58 
59 
60 
61 
62 if __name__ == "__main__":
63     db = DouBan()
64     db.getMsg()

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 中文翻譯文檔: http://blog.csdn.net/rickiyeat/article/details/56483577 版本說明: Jquery v2.1.1 Bootstrap V3.3.7 bootstrap-table V1.11.1 一、視圖頁 1 <!DOCTYPE html> 2 ...
  • C#中Cookies的讀取 鏈接: 一 、寫入Cookie 1. Name 和 Value 屬性由程式設定,預設值都是空引用。 2. Domain屬性的預設值為當前URL的功能變數名稱部分,不管發出這個cookie的頁面在哪個目錄下的。 例如, http://www.kent.com/application ...
  • Cookie客戶端緩存。 1、引言 隨著瀏覽器的處理能力不斷增強,越來越多的網站開始考慮將數據存儲在「客戶端」,那麼久不得不談本地存儲了。 本地存儲的好處: 一是避免取回數據前頁面一片空白,如果不需要最新數據也可以減少向伺服器的請求次數,從而減少用戶等待從服務端獲取數據的時間。 二是網路狀態不佳時仍 ...
  • 本文是要寫的下篇《C#反射及優化用法》的前奏,不能算是下一篇文章的基礎的基礎吧,有興趣的朋友可以關註一下。 隨著C#的發展,該語言內容不斷豐富,開發變得更加方便快捷,C# 的鋒利盡顯無疑。C# 語言從誕生起就是強類型語言,這一性質到今天不曾改變,我想以後也不會變。既然是強類型語言,那編寫任一程式均要 ...
  • 獲取電腦內部信息 - ComputerInfoHelper 一、代碼 ComputerInfoHelper.cs ManagementBaseObjectPropertyName.cs WmiPath.cs 二、測試 1.電腦硬碟信息 2.我的電腦中的硬碟信息 3.測試代碼 4.輸出結果: 所有硬 ...
  • 大家在開發中會經常看到也會經常使用lambda表達式。 園子里也有很多詳解lambda表達式的文章,多是從橫向來講述。 但lambda表達式到底如何變成現在這個樣子,表達式的形式到底代表什麼含義,這些可能就不太明白了。 本文將從來源開始,縱向剖析,一直演化出我們常用的lambda表達式。 引子 為方 ...
  • 基於.netstandard的許可權控制組件 Intro 由於項目需要,需要在 基於 Asp.net mvc 的 Web 項目框架中做許可權的控制,於是才有了這個許可權控制組件。 項目基於 .NETStandard,同時支持 asp.net mvc(.NET faremwork4.5以上) 和 asp.n ...
  • 以下是我根據自身的情況來總結的ASP.NET 知識體系 ASP.NET 知識體系 1.語言C#——C#-知識梳理 2.ASP.NET 3.WinForm 4.ASP.NET MVC 5.EF ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...