潭州课堂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('\n#############第%s页##################\n\n'%(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+'\n') # 写数据 if __name__ == '__main__':
spider = DouBan()
spider.start_request()
spider.file.close()


潭州课堂25班:Ph201805201 爬虫基础 第五课 (案例) 豆瓣分析 (课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 爬虫基础 第十一课 点触验证码 (课堂笔记)
打开 网易盾 http://dun.163.com/trial/picture-click ——在线体验——图中点选 打码平台 ——超级鹰 http://www.chaojiying.com/ ...
- 潭州课堂25班:Ph201805201 爬虫基础 第八课 selenium (课堂笔记)
Selenium笔记(1)安装和简单使用 简介 Selenium是一个用于Web应用程序测试的工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, ...
- 潭州课堂25班:Ph201805201 爬虫基础 第三课 urllib (课堂笔记)
Python网络请求urllib和urllib3详解 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了url ...
- 潭州课堂25班:Ph201805201 爬虫基础 第六课 选择器 (课堂笔记)
HTML解析库BeautifulSoup4 BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库,它的使用方式相对于正则来说更加的简单方便,常常能够节省我们大量的时间 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第十三课 cookie (课堂笔记)
# -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/9/15 0015 4:52 #cookie 是服务器发给浏览器的特殊信息 # 可以理解为一个临时通行证 # ...
- 潭州课堂25班:Ph201805201 爬虫基础 第十课 图像处理- 极验验证码 (课堂笔记)
用 python 的 selenium 访问 https://www.huxiu.com/ 自动通过验证码 # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 20 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第七课 Python与常见加密方式 (课堂笔记)
打开图形界面 18版 Python与常见加密方式 前言 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes. 所以当我们在Python中进行加密操作的时 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第四课 Requests (课堂笔记)
优雅到骨子里的Requests 1528811134432 简介 上一篇文章介绍了Python的网络请求库urllib和urllib3的使用方法,那么,作为同样是网络请求库的Request ...
- 潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)
当要对一个页面进行多次请求时, 设 dont_filter = True 忽略去重 在 scrapy 框架中模拟登录 创建项目 创建运行文件 设请求头 # -*- coding: utf-8 ...
随机推荐
- 通过全备+relaylog同步恢复被drop的库或表
MySQL 中drop 等高危误操作后恢复方法 实验目的: 本次实验以恢复drop操作为例,使用不同方法进行误操作的数据恢复. 方法: 利用master同步 伪master+Binlog+同步 利用b ...
- liunx rm 命令修改
原文:https://blog.csdn.net/Ace_Shiyuan/article/details/60139791 1.打开一个终端,输入命令:vim ~/.bashrc Linux下修改rm ...
- 对 Laravel 的 Controller 做 Unit Test
之前尝试过对 Laravel 的 Controller 做 Feature Test,但是在业务变得越来越复杂之后,我感觉对 controller 里的函数也没了自信,急需对功能函数做 Unit Te ...
- hdu1890 splay维护区间翻转
这题的建模有点不太一样,是按结点横坐标赋予键值的 同时每次rotate和splay时都要注意下往上往下更新 /* 先建立好splay tree,将结点按num/输入顺序排序,遍历时每次将当前结点提到根 ...
- WebService简介-02
WebService-面向服务编程SOA WebService-远程通信 运行效果: 1:添加服务器引用http://www.webxml.com.cn/WebServices/WeatherWebS ...
- gitlab的docker安装,非标准端口,如何处理?
这个问题的定义是: 如果我们不是用的80端口对外提供服务, 但gitlab的docker容器里的nginx却是80端口, 那么,在我们clone代码时,带的Http地址也会是80端口,这显然会出现问题 ...
- Ajax和JSON完成二级菜单联动的功能
首先需要找好JSON的包哦: 链接:http://pan.baidu.com/s/1jH6gN46 密码:lbh1 1:首先创建一个前台页面,比如secondMenu.jsp,源码如下所示: < ...
- 【UER #1】DZY Loves Graph(待卡常数)
题解: 正解是可持久化并查集 但这个显然是lct可以维护的 但这常数是个问题啊??? #include <bits/stdc++.h> using namespace std; struc ...
- 【前端基础系列】理解GET与POST请求区别
语义区别 GET请求用于获取数据 POST请求用于提交数据 缓存 GET请求能被缓存,以相同的URL再去GET请求会返回304 POST请求不能缓存 数据长度 HTTP协议从未规定过GET/POST请 ...
- k8s nod rc service 使用
引用自:https://blog.csdn.net/dream_broken/article/details/53115770