使用pyspider爬取豆瓣评论

使用pyspider爬取豆瓣评论

#!/usr/bin/env python

-*- encoding: utf-8 -*-

Created on 2018-12-04 20:30:39

Project: douban


from pyspider.libs.base_handler import *

import MySQLdb

import sys

reload(sys)

sys.setdefaultencoding('utf8')

class Handler(BaseHandler):

    crawl_config = {

    }


    @every(minutes=24 * 60)

    def on_start(self):

        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/63.0'}

        

        for i in range(0,250,25):

            self.crawl('https://movie.douban.com/top250?start='+str(i)+'&filter=', callback=self.index_page, validate_cert=False, headers=headers)


    @config(age=10 * 24 * 60 * 60)

    def index_page(self, response):

        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/63.0'}               

        for each in response.doc('.item .pic a').items():

            for i in range(0,200,20):

                self.crawl(each.attr.href+'comments?start='+str(i)+'&limit=20&sort=new_score&status=P', callback=self.detail_page, headers=headers, validate_cert=False)

            

    @config(priority=2)

    def detail_page(self, response):

        #host = '127.0.0.1',user = 'root',passwd = 'zgx675050748',db = 'python',charset = 'utf8'

        db = MySQLdb.connect(host = '127.0.0.1',user = 'root',passwd = 'zgx675050748',db = 'python',charset = 'utf8')

        cursor = db.cursor()

        #cursor.execute("DROP TABLE IF EXISTS movie")
        
        #sql = "CREATE TABLE video1(电影名 varCHAR(200),评论 text)"

        #cursor.execute(sql)
        
        names = response.doc('#content h1')
       
        for name in names:
            
            print name.text
      
            for content in response.doc('.short'):

                print content.text

                sql = "INSERT INTO video1(电影名,评论)VALUES ('%s','%s')"%(name.text,content.text)

                cursor.execute(sql)

        db.commit()      
        db.close()
        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值