zoukankan      html  css  js  c++  java
  • 潭州课堂25班:Ph201805201 爬虫基础 第五课 (案例) 豆瓣分析 (课堂笔记)

    动态讲求 ,

    翻页参数:

    # -*- coding: utf-8 -*-
    # 斌彬电脑
    # @Time : 2018/9/1 0001 3:44
    
    import requests,json
    
    class DouBan:
        def __init__(self):
            #请求头部信息
            self.headers = {'User-Agent':"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36"}
            self.offset = 0         #  翻页参数
            self.n = 0              #  页码
            self.file = open('douban.json', 'a', encoding='utf8')
    
        def start_request(self):
            self.n += 1                     #  页码
            print('第%s页'%(str(self.n)))
            #  url 与 翻页参数 数拼接
            # url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=' +str(self.offset)+ '&limit=1'
            url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=' +str(self.offset)+ '&limit=20'
            res = requests.get(url,self.headers)
            # res.content.decode()        #  获取源码
            cont = res.json()              # 获取 json 数据
            # return cont
            self.write_file(cont)
            self.file.write('
    #############第%s页##################
    
    '%(str(self.n)))
            self.offset += 20
            if self.offset > 600:
                return
            self.start_request()        #  回调下自己,
    
        def write_file(self,cont):          # 保存数据
            item = {}                       # 定义个字典 重装
            for i in cont:
                item['regions'] = i['regions'][0]               # 地区
                item['title'] = i['title']                  # 电影名
                item['url1'] = i['url']
                item['release_date'] = i['release_date']    #时间
                item1 = json.dumps(item, ensure_ascii=False )       #  ensure_ascii=False 让 json 可读 数据转换
                self.file.write(item1+'
    ')                       # 写数据
    
    
    if __name__ == '__main__':
        spider = DouBan()
        spider.start_request()
        spider.file.close()
    

      

  • 相关阅读:
    【原】Storm序列化
    【原】Storm学习资料推荐
    【原】Storm实战
    【原】Storm环境搭建
    Autofac基本使用(转载)
    Autofac学习之三种生命周期:InstancePerLifetimeScope、SingleInstance、InstancePerDependency
    RabbitMQ 默认端口号
    RabbitMQ-客户端
    百度地图-生成器
    uploadify 配置后,页面显示无效果
  • 原文地址:https://www.cnblogs.com/gdwz922/p/9569026.html
Copyright © 2011-2022 走看看