Python爬取豆瓣動作電影好評前100名

2021-08-15 20:39:40 字數 2698 閱讀 5352

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# import urllib2

import json

import re

class

dbspider

(object):

"""豆瓣電影爬蟲"""

def__init__

(self):

"""初始化請求引數"""

self.url = ""

self.headers =

defsend_request

(self, url):

"""傳送請求類"""

request = urllib2.request(url=url, headers=self.headers)

response = urllib2.urlopen(request)

return response.read()

defwrite_file

(self, data):

"""將請求結果寫入檔案"""

with open(u'豆瓣動作電影評分排名前100.txt', 'a') as f:

f.write(data)

defget_detail_data

(self, url):

data = self.send_request(url)

release_data_list = [match[0] for match in

re.findall(r'(.*?)', data)]

release_data = "/".join(release_data_list)

runtime = re.search(r'', data).group(1)

return release_data, runtime

defformat_data

(self, data):

data_list = json.loads(data)

for index, data in enumerate(data_list, 1):

title = data["title"].encode("utf-8")

url = data["url"].encode("utf-8")

try:

release_data, runtime = self.get_detail_data(url)

except exception as e:

release_data, runtime = "", ""

print(e)

score = data["score"].encode("utf-8")

actors_list = data["actors"]

actors = "/".join(actors_list).encode("utf-8")

regions_list = data["regions"]

regions = "/".join(regions_list).encode("utf-8")

types_list = data["types"]

types = "/".join(types_list).encode("utf-8")

str_for_write = """

no.%d

片名:%s

評分:%s

主演:%s

國家:%s

型別:%s

片長:%s

""" \

% (index, title, url, score, actors, regions, types, runtime, release_data)

self.write_file(str_for_write)

print("正在獲取第%d個資料……" % index)

defrun(self):

"""啟動方法"""

data = self.send_request(self.url)

self.format_data(data)

if __name__ == '__main__':

dou_ban_spider = dbspider()

dou_ban_spider.run()

no.1

片名:這個殺手不太冷

評分:9.4

主演:讓·雷諾/娜塔莉·波特曼/加里·奧德曼/丹尼·愛羅/彼得·阿佩爾/麥可·巴達魯科/艾倫·格里尼/伊莉莎白·瑞根/卡爾·馬圖斯維奇/弗蘭克·賽格/麥溫/喬治·馬丁/羅伯特·拉薩多/亞當·布斯奇/馬里奧·託迪斯科/薩公尺·納塞利

國家:法國

型別:劇情/動作/犯罪

片長:110

no.2

片名:七武士

評分:9.2

主演:三船敏郎/志村喬/稻葉義男/宮口精二/千秋實/加東大介/木村功

國家:日本

型別:動作/冒險/劇情

片長:160

no.3

片名:指環王3:王者無敵

評分:9.1

主演:維果·莫騰森/伊利亞·伍德/西恩·奧斯汀/麗芙·泰勒/伊恩·麥克萊恩/奧蘭多·布魯姆/凱特·布蘭切特/公尺蘭達·奧圖/安迪·瑟金斯/雨果·維文/多公尺尼克·莫納漢/比利·博伊德/馬爾頓·索克斯/卡爾·厄本/克里斯多福·李/約翰·瑞斯-戴維斯

國家:美國/紐西蘭

型別:劇情/動作/奇幻/冒險

片長:201

豆瓣熱門電影爬取

import requests import json import csv defgetonepagedata page start url headers params response requests.get start url,headers headers,params params i...

Python爬蟲 爬取豆瓣電影(二)

檢視上乙個專案,請看 上乙個專案中獲取到了一定數量的電影url資訊,這次來獲取單個電影的電影詳情。對傳遞的url返回乙個名為soup的beautifulsoup物件 defget url html soup url header request body.get header proxies req...

python爬蟲爬取豆瓣電影資訊

我們準備使用python的requests和lxml庫,直接安裝完之後開始操作 目標爬取肖申克救贖資訊 傳送門 導入庫import requests from lxml import etree 給出鏈結 url 獲取網頁html前端 一行搞定,在requests中已經封裝好了 data reque...