首先需要安裝好爬蟲需要用到的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...