摘要: 开发Django项目是最常见,也是最麻烦的一个问题就是如何区分开发配置与线上配置。一般这个时候我们会拆分setting.py为多个配置文件,例如:base.py、develop.py...等等,然后统一放在settings文件夹里面。 例如新建一个Django项目的时候,默认结构如下: test_p 阅读全文
posted @ 2020-11-08 20:36 lattesea 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: 这里记录一个代理ip池中间件,以后再做项目的时候可以直接复用 middleware文件 # -*- coding: utf-8 -*- # Define here the models for your spider middleware # See documentation in: # http 阅读全文
posted @ 2020-04-22 02:55 lattesea 阅读(1825) 评论(0) 推荐(0) 编辑
摘要: 前言 游戏主机之间的竞争由来已久,即使是现在也依然在悄然进行.本次数据分析将通过分析第七代游戏机和第八代游戏机之间的销量数据,来看一看谁才是这场竞争的胜者: 第七代游戏机: PS3,Xbox360,Wii 第八代游戏机: PS4,Xboxone,WiiU 首先,我们先导入需要用到的库 import 阅读全文
posted @ 2020-03-30 11:42 lattesea 阅读(952) 评论(0) 推荐(0) 编辑
摘要: 用python构建一个函数,每次连接数据库查询直接调用就行 # 引入相关模块import pymysql from sqlalchemy import create_engine def query(table): host='localhost' #本地IP地址 user='root' #用户名 阅读全文
posted @ 2020-03-12 12:34 lattesea 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息 分析: 从sc表查询01同学的所有选课cid--从sc表查询所有同学的sid如果其cid在前面的结果中--从student表查询所有学生信息如果sid在前面的结果中 查询01同学的cid select sc.cid from sc wh 阅读全文
posted @ 2020-01-08 19:12 lattesea 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 查询没有学全所有课程的同学的信息 分析: 这里我们可以查询学了所有三门课的学生,然后取反,就是没学全的学生信息 查询学了所有课程的学生 select sc.sid from sc group by sc.sid having count(sc.cid)= (select count(cid) fro 阅读全文
posted @ 2020-01-08 18:58 lattesea 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 查询学过「张三」老师授课的同学的信息 分析: 这个是很常见的多表联合查询 查询 select student.* from student,teacher,course,sc where student.sid = sc.sid and course.cid=sc.cid and course.ti 阅读全文
posted @ 2020-01-08 18:52 lattesea 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 查询「李」姓老师的数量 分析: 这道题主要考察的是like语句和'%'的用法,只要在teacher表中搜索李开头的数据 查询 select count(*) from teacher where tname like '李%'; 查询结果: + + | count(*) | + + | 1 | + 阅读全文
posted @ 2020-01-08 18:29 lattesea 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 查有成绩的学生信息 分析:这道题可以用到in或者exists的用法,主要就是筛选出sc表中的sid,然后查询出student中存在上一步查询出来的sid的数据 IN()用法: 只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果 阅读全文
posted @ 2020-01-07 22:04 lattesea 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和 分析:这道题明显也只用到sc和student两张表,对这两张表进行联合查询,选课总数和课程成绩总和的操作对象都是sc表,因此我们可以构建表r,里面字段是选课总数和成绩总和还有SId,然后跟student表进行联合查询 构建表r sele 阅读全文
posted @ 2020-01-07 21:37 lattesea 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 查询在 SC 表存在成绩的学生信息 分析:这个挺简单,只要在sc表中筛选出所有存在的SId,然后对Student进行查询就行,sc筛选出来会有重复的SId,所以要用到DISTINCT去重 查询 select DISTINCT student.* from student,sc where stude 阅读全文
posted @ 2020-01-07 20:28 lattesea 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩 分析:看到这道题的时候,刚开始考虑的是有的同学有三门成绩,有的同学有两门成绩,我是应该所有同学都总分除以三,还是总分除以各自科目数?所以这里这道题也有点不严谨,我这里选择第二种情况(因为第一种貌似比第二种麻烦,懒癌发作).我们可以查 阅读全文
posted @ 2020-01-07 04:33 lattesea 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1.1 查询同时存在" 01 "课程和" 02 "课程的情况 分析:刚开始看到这道题是懵逼的,因为 !!!看不懂!!! 之后看了一下sc表,发现并不是每个同学都有01和02课程的成绩(可能是缺考了),那么这道题的意思应该是在sc表中筛选出同时又01和02成绩的学生.既然理清题干了,那接下来就容易了, 阅读全文
posted @ 2020-01-07 03:48 lattesea 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 分析: 题目中可以看出涉及到课程成绩,学生信息,因此只需要从Student学生表和SC成绩表入手.这道题的难点在于,学生的成绩表上包含了01,02,03等课程的成绩,在同一张表上面怎么比较?当然是把它们拆出来,我们可以把SC表中学生 阅读全文
posted @ 2020-01-07 01:55 lattesea 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 这个练习题是在网站上面看到的,觉得很值得拿来练习,因此在这里记录一下解决的思路过程,话不多说,直接开始. 首先是建表,需要建立四个表,分别是: --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 阅读全文
posted @ 2020-01-07 01:14 lattesea 阅读(1195) 评论(0) 推荐(0) 编辑
摘要: 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。 降低日志级别: 在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率。可以设置log输出信息为I 阅读全文
posted @ 2019-11-14 22:32 lattesea 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 工作中常用的高阶函数: filter(): Python内建的filter函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 例如以下方法 阅读全文
posted @ 2019-11-14 20:06 lattesea 阅读(133) 评论(0) 推荐(0) 编辑
摘要: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)", "Mozilla/4.0 (compatible; MSIE 7.0; Win 阅读全文
posted @ 2019-11-08 17:20 lattesea 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: 有时xpath爬取数据之后会返回多个列表,这些列表的长度一样,这时候可以用zip()合并,然后返回一个zip对象,直接传入储存函数,进行持久化储存 例如: name=['张三','李四','王五'] age=['23','24','25'] tall=['178','156','192'] zip( 阅读全文
posted @ 2019-11-08 03:50 lattesea 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 有时感觉在windows环境下编程总会遇到点麻烦,特别是路径和环境变量的问题,就比如调用不了chromedriver 即使设置环境变量指定路径也没有,最后之后直接在代码上下手了 1 browser = webdriver.Chrome(executable_path="C:\\Users\Admin 阅读全文
posted @ 2019-11-08 03:28 lattesea 阅读(2877) 评论(0) 推荐(0) 编辑
摘要: 一、 JavaScript 概述 1. 什么是JavaScript 1) JavaScript 介绍 ​ 简称JS,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果,用户交互及前后端的数据传输等。 2) JavaScript 组成 1. 核心语法 ECMAS 阅读全文
posted @ 2019-11-01 04:15 lattesea 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 最近在爬一个js数据加密的网站的时候,出了点问题,困扰了我两天 直接运行js文件的时候正常,但是用execjs运行js代码的时候总是会报错 最后翻了很多博客之后,终于找到了原因:原因是有一个程序在使用TextIOWrapper 类创建对象时默认使用了gbk编码,读取不了utf-8的字符,所以我们可以 阅读全文
posted @ 2019-11-01 03:17 lattesea 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 做爬虫的人,一定离不开的一个框架就是scrapy框架,写小项目的时候可以用requests模块就能得到结果,但是当爬取的数据量大的时候,就一定要用到框架. 下面先练练手,用scrapy写一个爬取猫眼电影的程序,环境配置和scrapy安装略过 第一步肯定是终端运行创建爬虫项目和文件 然后在产生的ite 阅读全文
posted @ 2019-10-29 02:41 lattesea 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 最近在学习xpath,在网上找资料的时候,发现一个新手经常拿来练手的项目,爬取猫眼电影前一百名排行的信息,很多都是跟崔庆才的很雷同,基本照抄.这里就用xpath自己写了一个程序,同样也是爬取猫眼电影,获取的信息是一样的,这里提供一个另外的解法. 说实话,对于网页信息的匹配,还是推荐用xpath,虽然 阅读全文
posted @ 2019-10-27 03:14 lattesea 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 这个可以作为xpath的练手项目,爬取股吧2016年6月份到2016年12月份的文章标题和发帖时间 代码如下: 阅读全文
posted @ 2019-10-27 03:13 lattesea 阅读(341) 评论(0) 推荐(0) 编辑
摘要: selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制. 当当网目前还没有对这方面加以限制,所以今天就用这个练习熟悉一下selenium操作,我们可以试一 阅读全文
posted @ 2019-10-27 03:12 lattesea 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 在爬取的过程中发现,访问频率太快会导致网站弹出滑动验证,所以设定了时间随机时间延迟,这样子就能保证爬取的信息完整,我选的是青岛市的小区,后续也可以添加输入市名爬取相关内容,二级页面的房子的平均价格是动态生成的,需要发送一个请求得到一个json,请求的url比较复杂,而且还要再发送一次请求,因此直接在 阅读全文
posted @ 2019-10-27 03:11 lattesea 阅读(2046) 评论(5) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-10-27 03:10 lattesea 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 此次的目标是爬取电影天堂最新200页的最新电影的电影名称和下载链接,电影的下载链接在二级页面,所以需要先匹配一级页面的所有链接,然后逐个请求二级页面,代码如下: """ 爬取电影天堂2019年的电影名称和链接 """ import requests import csv from fake_user 阅读全文
posted @ 2019-10-27 03:09 lattesea 阅读(1509) 评论(0) 推荐(0) 编辑
摘要: 该网站主要是访问频率太高会被封账号 阅读全文
posted @ 2019-10-27 03:07 lattesea 阅读(1094) 评论(0) 推荐(1) 编辑
摘要: Scrapy框架五大组件 scrapy爬虫工作流程 scrapy常用命令 scrapy项目目录结构 全局配置文件settings.py详解 创建爬虫项目步骤 pycharm运行爬虫项目 阅读全文
posted @ 2019-10-22 17:13 lattesea 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 在电脑第一次安装pycharm之后,发现每次调整代码界面的字体,总是需要到setting里面调整,这样非常不方便,特别是对于代码量很多的时候,我们有时候需要把目光聚焦到某一句代码,这个时候就需要放大,这个时候打开setting设置就显得效率非常低了,其实我们可以通过几句代码来实现滑轮改变字体大小的功 阅读全文
posted @ 2019-10-17 16:04 lattesea 阅读(669) 评论(0) 推荐(0) 编辑
摘要: import os import json class SaveJson(object): def save_file(self, path, item): # 先将字典对象转化为可写入文本的字符串 item = json.dumps(item) try: if not os.path.exists(path): with open(path, "w", encoding='utf-8') as 阅读全文
posted @ 2019-10-12 11:42 lattesea 阅读(8492) 评论(0) 推荐(1) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-10-08 01:40 lattesea 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1.创建项目文件夹,例如创建一个"爬虫项目码云仓库" 2.进入项目文件夹,在地址栏输入cmd然后回车,这样就在该文件夹打开了终端 3.终端输入git init初始化项目仓库,此时会产生一个隐藏的.git文件夹,相关的配置文件都在里面 4.配置用户名和邮箱 5.将代码文件放在项目文件夹中 6.提交到到 阅读全文
posted @ 2019-10-07 03:42 lattesea 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 整理平常经常用到的文件对象方法: f.readline() 逐行读取数据方法一: 方法二: f.next() 逐行读取数据,和f.readline() 相似,唯一不同的是,f.readline() 读取到最后如果没有数据会返回空,而f.next() 没读取到数据则会报错 f.writelines() 阅读全文
posted @ 2019-10-04 18:51 lattesea 阅读(2114) 评论(0) 推荐(0) 编辑
摘要: 做python小项目的时候发现熟练运用python内置函数,可以节省很多的时间,在这里整理一下,便于以后学习或者工作的时候查看.函数的参数可以在pycharm中ctrl+p查看。 1.abs(x):返回数字的绝对值 2.dict():创建一个字典 3.min():返回给定参数的最小值,参数可以为序列 阅读全文
posted @ 2019-09-24 01:02 lattesea 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 各大免费IP的网站的反爬手段往往是封掉在一定时间内访问过于频繁的IP,因此在爬取的时候需要设定一定的时间间隔,不过说实话,免费代理很多时候基本都不能用,可能一千个下来只有十几个可以用,而且几分钟之后估计也扑街了。虽然有那种付费的大量代理IP,但是也不见得好,测试过,里面优质的也很少。目前体验比较好的 阅读全文
posted @ 2019-09-24 00:49 lattesea 阅读(801) 评论(0) 推荐(0) 编辑