#!/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...