pyspider 爬豆瓣電影資訊
# -*- encoding: utf-8 -*-
# Created on 2015-11-23 10:50:38
# Project: doubanmovie
from pyspider.libs.base_handler import *
import pymongo,sys
from pymongo import MongoClient
import re,time,random,hashlib
from scrapy.selector import Selector
from datetime import *
class Handler(BaseHandler):
client = MongoClient(host="localhost",port=27017, read_preference=pymongo.read_preferences.ReadPreference.PRIMARY_PREFERRED)
db = client.edogdata
db.authenticate("database","passwd")
倫理片http://www.dotdy.com/
@every(minutes=24*60) def on_start(self):
self.crawl('http://movie.douban.com/tag/', callback=self.index_page) #豆瓣電影標籤
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('a[href^="http"]').items():
if re.match("http://www.douban.com/tag/\w+", each.attr.href, re.U): # 愛情,戲劇,劉德華,1990,驚悚,恐怖 。。。
self.crawl(each.attr.href, callback=self.list_page)
@config(age=2, priority=2)
def list_page(self, response):
#print "urlllll response",response.doc
movie = response.doc('a[href^="http"]').items()
for each in movie:
if re.match("http://www.douban.com/link2/\W+",each.attr.href):
#print "each",each.text()
#print "each.attr.href",each.attr.href
if each.attr.href.find("movie") < 130:
self.crawl(each.attr.href, callback=self.final_page)
print "find movie"
def final_page(self,response):
for each in response.doc('a[href^="http"]').items():
if re.match('http://movie.douban.com/\w+',each.attr.href,re.U):
self.crawl(each.attr.href,callback=self.detail_page)
#翻頁
self.crawl([x.attr.href for x in response.doc('.next a').items()],callback=self.final_page) # .next 的 '.' 表示class=next ,如果是 #next 的話,則表示 id=next ×××××××××××××××××××××××××××××××××××××××××××××××××××
#@config(priority=4)
def detail_page(self, response):
now = str(datetime.now())
_id = hashlib.md5(response.doc('HTML>BODY>DIV#wrapper>DIV#content>H1>SPAN').text().encode('utf-8')).hexdigest()
site = response.url
name = response.doc("title").text().split('(')[0]#response.doc('HTML>BODY>DIV#wrapper>DIV#content>H1>SPAN[property="v:itemreviewed"]').text()
director = [x.text() for x in response.doc('a[rel="v:directedBy"]').items()]
release_date = [x.text() for x in response.doc('span[property="v:initialReleaseDate"]').items()]
actor = '/'.join([x.text() for x in response.doc('a[rel="v:starring"]').items()])
rating = [x.text() for x in response.doc('strong[property="v:average"]').items()]
type = [x.text() for x in response.doc('span[property="v:genre"]').items()]
source = '豆瓣'
#IMDb_Link = [x.attr.href for x in response.doc('a[rel="nofollow"]').items()]
IMDb_Link = response.doc('HTML>BODY>DIV#wrapper>DIV#content>DIV.grid-16-8.clearfix>DIV.article>DIV.indent.clearfix>DIV.subjectwrap.clearfix>DIV.subject.clearfix>DIV#info>a[rel="nofollow"]').attr.href # HTML>BODY 可以不用
self.db.douban.insert({"_id":_id,"url":site , "title":name,"time":now,"director":director,"release_date": release_date,'actor':actor,"type": type,"source": source,"rating":rating,"IMDb_Link":IMDb_Link})
return {
"url": response.url,
"title": name,#response.doc('HTML>BODY>DIV#wrapper>DIV#content>H1>SPAN[property="v:itemreviewed"]').text(),#property="v:itemreviewed
"rating": rating,#response.doc('HTML>BODY>DIV#wrapper>DIV#content>DIV.grid-16-8.clearfix>DIV.article>DIV.indent.clearfix>DIV.subjectwrap.clearfix>DIV#interest_sectl>DIV.rating_wrap.clearbox>DIV.rating_self.clearfix>STRONG.ll.rating_num').text(),
"導演": actor,#[x.text() for x in response.doc('a[rel="v:directedBy"]').items()],
"time": now,
"release_date" : release_date,
"actor" : actor,
"type" : type,
"IMDb_Link" : IMDb_Link
相關推薦
pyspider 爬豆瓣電影資訊
#!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2015-11-23 10:50:38 # Project: doubanmovie from pyspider.libs.base_handler import * impo
案例學python——案例三:豆瓣電影資訊入庫 一起學爬蟲——通過爬取豆瓣電影top250學習requests庫的使用
閒扯皮 昨晚給高中的妹妹微信講題,函式題,小姑娘都十二點了還迷迷糊糊。今天凌晨三點多,被連續的警報聲給驚醒了,以為上海拉了防空警報,難不成地震,空襲?難道是樓下那個車主車子被堵了,長按喇叭?開窗看看,好像都不是。好鬼畜的警報聲,家裡也沒裝報警器啊,莫不成家裡煤氣漏了?起床循聲而查,報警
python 爬蟲學習三(Scrapy 實戰,豆瓣爬取電影資訊)
利用Scrapy爬取豆瓣電影資訊主要列出Scrapy的三部分程式碼: spider.py檔案: # _*_ coding=utf-8 _*_ import scrapy from course.douban_items import DouBanItem from scra
豆瓣電影資訊爬取並儲存到excel
import re import openpyxl import requests from bs4 import BeautifulSoup class Movie(object): def __init__(self, title, h
python爬取豆瓣電影資訊
''' 用到的主要知識:(詳情見官方文件) 1. requests 2. BeautifulSoup 3. codecs 4. os ''' #-*-coding:utf-8 import requests from bs4 import Beautif
Python爬蟲入門 | 2 爬取豆瓣電影資訊
這是一個適用於小白的Python爬蟲免費教學課程,只有7節,讓零基礎的你初步瞭解爬蟲,跟著課程內容能自己爬取資源。看著文章,開啟電腦動手實踐,平均45分鐘就能學完一節,如果你願意,今天內你就可以邁入爬蟲的大門啦~ 好啦,正式開始我們的第二節課《爬取豆瓣電影資訊
小菜鳥的第一個爬蟲:豆瓣爬取電影資訊
#!/usr/bin/env python # -*- coding=utf-8 -*- import urllib.request import re import time import os from bs4 import BeautifulSo
爬豆瓣電影名
user alt fire https agent tps gecko get text import urllib.request from bs4 import BeautifulSoup url = "https://movie.douban.com/chart"
python爬蟲之獲取豆瓣電影資訊
此次是師哥給佈置的任務,所以這幾天就在研究如何完成獲取https://movie.douban.com/top250這個網站裡面250部電影的資訊。 主要就是應用了python的urllib2與beautifulsoup的結合使用,也是我第一次使用爬蟲,當然現在看也是基礎的
python爬蟲 登陸豆瓣 爬豆瓣電影短評
這個爬蟲的目的是爬取豆瓣電影短評和評分(從1星到5星),這些東西可以做情感分類。由於不登入的情況下只能看電影短評的前幾頁,所以要實現登陸豆瓣。 登陸豆瓣的部分是在網上看的別人的程式碼,忘了從哪看的了。# -*- coding: utf-8 -*- f
使用BeautifulSoup方法抓取豆瓣電影資訊
# -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup import chardet import re import xlwt #獲取某頁的內容 def getHtml(ind
python爬取豆瓣電影Top250的資訊
python爬取豆瓣電影Top250的資訊 2018年07月25日 20:03:14 呢喃無音 閱讀數:50 python爬取豆瓣電影Top250的資訊。 初學,所以程式碼的不夠美觀和精煉。 如果程式碼有錯,請各位讀者在評論區評論,以免誤導其他同學。 (
python爬蟲——爬取豆瓣電影top250資訊並載入到MongoDB資料庫中
最近在學習關於爬蟲方面的知識,因為剛開始接觸,還是萌新,所以有什麼錯誤的地方,歡迎大家指出 from multiprocessing import Pool from urllib.request import Request, urlopen import re, pymongo index
【Python爬蟲】Scrapy框架運用1—爬取豆瓣電影top250的電影資訊(1)
一、Step step1: 建立工程專案 1.1建立Scrapy工程專案 E:\>scrapy startproject 工程專案 1.2使用Dos指令檢視工程資料夾結構 E:\>tree /f step2: 建立spid
爬取豆瓣電影排行(T250)的資訊
1.分析 針對所爬去的Url進行分析: 分析網址'?'符號後的引數,第一個引數'start=0',這個代表頁數,‘=0’時代表第一頁,‘=25’代表第二頁,以此類推。 1.1頁面分析 明確要爬取的元素 :排名、名字、導演、評語、評分 1.2 頁面程式碼分析
python爬取資料(豆瓣上TOP250的電影資訊)初學者必看!!!
python爬取豆瓣上TOP250電影 初學python爬蟲。我這裡用的 lxml提取xpath的方式來爬取資料 lxml爬取的速度會比bs4快,所以這裡我選用的lxml 話不多上,趕緊上教程。 爬取的思路: 1.獲取網頁解析(有些網頁需要代理) 2.解析完成之
Python網路爬蟲:利用正則表示式爬取豆瓣電影top250排行前10頁電影資訊
在學習了幾個常用的爬取包方法後,轉入爬取實戰。 爬取豆瓣電影早已是練習爬取的常用方式了,網上各種程式碼也已經很多了,我可能現在還在做這個都太土了,不過沒事,畢竟我也才剛入門…… 這次我還是利用正則表示式進行爬取,怎麼說呢,有人說寫正則表示式很麻煩,很多人都不
2-6-1 應用案例:爬取豆瓣 TOP250 電影資訊並存儲(版本:py3)——學習筆記
爬取電影名稱、連結並寫入檔案 import urllib.request as urlrequest from bs4 import BeautifulSoup import time #休息時間 import random #為了時間隨機 top250_url="htt
基於BeautifulSoup爬取豆瓣網上的電影資訊
基於BeautifulSoup實現爬取豆瓣網上的電影資訊 這些天在學習Python,瞭解到用Python做網頁網頁爬蟲非常的方便,於是琢磨著寫了一個簡單的爬蟲程式(感謝萬能的beautifulSoup框架,ps:做網頁解析太方便了)。當然這是計劃中的一部分,說
scrapy爬取豆瓣電影top250
imp port 爬取 all lba item text request top 1 # -*- coding: utf-8 -*- 2 # scrapy爬取豆瓣電影top250 3 4 import scrapy 5 from douban.items i