Python爬豆瓣電影top250匯出Excel

2021-10-24 01:21:45 字數 3456 閱讀 3709

首先需要安裝好爬蟲需要用到的python庫  開發工具使用的是pycharm

1:request  網路請求模組

2:lxml   取資料的模組 這裡用的是xpath  沒有用bs4

3.xlwings    對excel進行讀寫的模組

如果安裝失敗 或者安裝緩慢 可以參考我之前的部落格 將pycharm映象更換為清華大學映象

更換開發工具的映象  一鍵到達

首先需要知道豆瓣電影的url是這樣的 

第二頁:

第三頁:

第四頁:

也就是說每一頁有25條資料  get請求的start引數就是起始的資料  結束的資料就是 25 50 75等等

那麼只需要在get請求中從0開始每次加25即可  因為是top250  所以加到225就不加了

首先需要寫好start引數變化的值  請求url封裝成requesurl方法

if __name__ == "__main__":

start = 0

while start <= 225:

requesturl(start)

start = start + 25

接下來封裝requesturl函式

def requesturl(start):

url = ""

header =

params =

response = requests.get(url=url, params=params, headers=header).text

terr = etree.html(response)

terr_lis = terr.xpath('//ol[@class="grid_view"]/li')

for i in terr_lis:

video_name = i.xpath('./div/div/div/a/span/text()')[0]

video_score = i.xpath('./div/div/div/div/span[2]/text()')[0]

video_evaluate = i.xpath('./div/div/div/div/span[4]/text()')[0]

# print(text + ' 評分:' + number + "\n")

這裡教大家乙個小技巧 

這裡可以直接copy出來xpath的路徑 不用乙個乙個的寫 很方便的

到這裡已經拿到了我們想要的資料 下面就是使用xlwings   匯出資料

wb = xw.book("e:\example.xlsx")

sht = wb.sheets["sheet1"]

sht.range('a1').value = "xlwiassssssssssssssssngs"

這是最基本的用法 首先開啟檔案 然後獲取工作表   a1對應的是網格的位置  value就是需要寫入的值  

那麼我們就知道a是固定的 1是動態的 所以只需要動態改變a後邊的資料即可

完整**如下

import requests

from lxml import etree

import xlwings

video_name_colunm = 0

video_score_colunm = 0

video_evaluate_colunm = 0

def requesturl(start):

global video_name_colunm

global video_score_colunm

global video_evaluate_colunm

url = ""

header =

params =

response = requests.get(url=url, params=params, headers=header).text

terr = etree.html(response)

terr_lis = terr.xpath('//ol[@class="grid_view"]/li')

for i in terr_lis:

video_name = i.xpath('./div/div/div/a/span/text()')[0]

video_score = i.xpath('./div/div/div/div/span[2]/text()')[0]

video_evaluate = i.xpath('./div/div/div/div/span[4]/text()')[0]

# print(text + ' 評分:' + number + "\n")

video_name_colunm = video_name_colunm + 1

video_name_xls = "a" + str(video_name_colunm)

sht.range(video_name_xls).value = video_name

video_score_colunm = video_score_colunm + 1

video_score_xls = "b" + str(video_score_colunm)

sht.range(video_score_xls).value = video_score

video_evaluate_colunm = video_evaluate_colunm + 1

video_evaluate_xls = "c" + str(video_evaluate_colunm)

sht.range(video_evaluate_xls).value = video_evaluate

sht.range(video_evaluate_xls).columns.autofit()

print("正在寫入----" + video_name)

if __name__ == "__main__":

wb = xlwings.book("d:\example.xlsx")

sht = wb.sheets["sheet1"]

start = 0

while start <= 225:

requesturl(start)

start = start + 25

這裡新建了3個全域性變數 並且初始化為0  每次+1 好了 這下結果就出來了

基本思路就是這樣   想要匯出什麼資料 可以自己嘗試 

python 協程爬蟲 爬取豆瓣電影top250

from lxml import etree html解析庫 from time import time 獲取時間 import asyncio 協程庫 import aiohttp 協程http請求url headers 主要做html頁面抓取 async deffetch content url...

利用xpath解析器爬取豆瓣電影top250

首先宣告需要用的庫,當然我還用到了os庫,將工作路徑修改到了我指定的路徑。os.chdir r c users from lxml import etree import requests import time import json豆瓣top250總共有10頁,每頁25部電影,每頁的url都是有...

python爬取豆瓣電影top250

簡要介紹 爬取豆瓣電影top250上相關電影的資訊,包括影片鏈結 影片名稱 上映時間 排名 豆瓣評分 導演 劇情簡介。使用 requests etree xpath 1 檢視網頁資訊,確定爬取的內容,建立資料庫 class spiderdata peewee.model url peewee.cha...