- 博客(105)
- 收藏
- 关注
原创 列表和元组(更新后)
Day2.1、变量的创建与id2、浮点数的精确度3、列表列表的操作列表枚举:enumerate判断输入是否为数字1、变量的创建与id当我们定义了一个变量name = ‘oldboy’的时候,在内存中其实是程序开辟了一块内存空间,将‘oldboy’存储进去,再让变量名name指向‘oldboy’所在的内存地址。当我执行下面这段代码的时候,程序是怎么处理的呢?name1 = ‘oldboy’...
2019-07-01 22:19:54
363
原创 反思
接触编程是从python开始的,一开始觉得好玩,工作与此也不沾边。此后找了课程和书,一股脑的学了下来之后写在了CSDN上,逐渐忘了玩的初衷。此刻暂时搁置学习数据结构,算法,操作系统等,慕课上的课程也暂时搁置。因为这段时间发现自己贪多,玩的小项目比较少,没有多少成就感而且比较累,所以系统性学习放在之后,这段业余时间想办法实现自己的小想法,找几个好玩的小项目。...
2019-05-01 08:14:31
436
原创 mysql用到的查询语句补充
部分数据内容如下:括号划分优先级:找出上海本科的职位信息和北京硕士的职位信息select * from DataAnalystwhere (city = '上海' and education= '本科') or (city = '北京' and education = '硕士')去重计数:找出每个城市的职位数select city,count(distinct posit...
2019-04-06 17:12:13
223
原创 pandas链接mysql数据库读取和存入
步骤:导入包写sql语句编写引擎:engine=sqlalchemy.create_engine('mysql+pymysql://root:123@localhost:3306/db1')root是用户名,123是密码,@是本地地址,3306是端口,db1是库名读取是pd.read_sql(sql,engine,)写入是to_sql('mydf2',engine,index=Fal...
2019-04-06 15:56:18
1039
原创 爬虫——基于RedisSpider分布式爬取网易新闻:代理池,ua池,selenium加载动态数据,分布式
总结:先编写普通工程代码再改写。selenium使用1、在爬虫文件中,用selenium创建浏览器对象,2、然后改写下载中间件的process_response方法,通过该方法对下载中间件获取的页面响应内容进行更改,更改成浏览器对象去模拟浏览器获取全部页面之后的内容。3、进一步发现页面下拉的时候数据还会不断加载,因此在让浏览器再执行一段js代码移动到浏览器底部。4、settings里...
2019-03-25 17:30:18
558
原创 爬虫——分布式爬虫爬取糗事百科所有页面的趣图链接
文章目录分布式爬取的流程:代码:实质上就是在多个机器上运行爬虫文件,调用组件scrapy_redis实现共享调度器和管道,写入redis数据库的过程。分布式爬取的流程:https://www.cnblogs.com/foremostxl/p/10095663.html#_label1安装scrapy-redis组件,pip install scrapy-redisredis配置文...
2019-03-24 15:12:21
372
原创 爬虫——scrapy框架爬取多个页面电影的二级子页面的详细信息
文章目录需求:总结:代码:movieinfo.pyitems.pymiddleware.pypipelines.py结果:附加:需求:scrapy框架,爬取某电影网页面的每个电影的一级页面的名字爬取每部电影二级页面的详细信息使用代理ip保存日志文件存为csv文件总结:1、xpath解析使用extract()的各种情况分析https://blog.csdn.net/nzjdsd...
2019-03-23 16:36:13
8474
1
转载 scrapy-日志种类
日志等级(种类): CRITICAL:严重 ERROR:错误 WARNING:警告 INFO:一般信息 DEBUG:调试信息(默认)指定输入某一日志信息: settings:LOG_LEVEL = ‘ERROR’将日志信息存储到制定文件中,而并非显示在终端里: settings:LOG_FILE = ‘log.txt’学习:https...
2019-03-22 15:50:14
278
原创 爬虫——post请求,代理,cookie
发起post请求改写def start_requests(self):封装参数字典格式回调函数yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse) class PostdemoSpider(scrapy.Spider): name = 'postDemo' ...
2019-03-22 15:21:34
553
转载 爬虫——scrapy框架核心组件流程
流程:引擎检测起始列表的url,调用start_request方法对列表里的url发起请求start_urls = [‘https://www.qiushibaike.com/text/’]Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器)。Scheduler(排序,入队)处理后,经ScrapyEngine...
2019-03-22 10:33:44
301
原创 爬虫——多个url数据爬取
请求的手动发送pipelines.pyclass SecondPipeline(object): f = None def open_spider(self,spider): print('start') self.f = open('./qiubai.text','w',encoding='utf-8') def process_i...
2019-03-22 10:05:47
3317
原创 scrapy框架——持久化存储
文章目录磁盘文件基于终端指令流程总结基于管道流程总结:数据库mysql:流程总结:redis:流程总结:磁盘文件基于终端指令class QiubaiSpider(scrapy.Spider): name = 'qiubai' #allowed_domains = ['www.qiushibaike.com/text'] start_urls = ['https://w...
2019-03-22 08:43:00
323
原创 爬虫——scrapy框架基础
学习:https://www.cnblogs.com/foremostxl/p/10078543.html基础语法:在命令行下创建工程:scrapy startproject 项目名称在命令行下创建项目:cd 进入工程所在文件夹scrapy genspider 爬虫文件的名称 起始url再执行命令:项目文件下执行 :scrapy crawl 爬虫文件的名称 --nolog(...
2019-03-21 12:04:26
318
原创 爬虫——需求:获取豆瓣电影中动态加载出更多电影详情数据
# 需求:获取豆瓣电影中动态加载出更多电影详情数据# 思路:喜剧排行榜,ajax请求,20条,页面滚动加载# # 浏览器打开网址--模拟浏览器滚动--怎么滚动页面?执行js代码。怎么抓取?不用重新发请求from selenium import webdriver as wdfrom time import sleepbro = wd.PhantomJS(executable_path...
2019-03-20 21:15:02
1280
原创 爬虫——phantomJs
PhantomJS是一款无界面的浏览器,驱动下载:http://phantomjs.org/download.html流程与selenium一致,只是改了webdriver 的浏览器类型和驱动目录,增加了截屏功能bro.save_screenshot('./1.png')from selenium import webdriver as wdbro = wd.PhantomJS(exe...
2019-03-20 21:02:22
540
原创 爬虫——selenium
让谷歌浏览器自动启动并百度自动搜索关键词思路:下载浏览器驱动,创建浏览器对象,让浏览器get请求打开一个页面,定位到搜索框,输入值,定位到按钮,执行点击操作。环境搭建安装selenum:pip install selenium获取某一款浏览器的驱动程序(以谷歌浏览器为例)谷歌浏览器驱动下载地址:http://chromedriver.storage.googleapis.com/inde...
2019-03-20 17:44:43
271
原创 爬虫——beautiful演练及语法
将html文档转换成beautiful对象,然后调用属性和方法进行定位解析主要语法:创建Beatiful对象:本地:BeautifulSoup(open('本地文件'), 'lxml')网络:Beatiful('网络请求到的页面数据','lxml')获取a标签属性:soup.a['href']获取文本内容:soup.a.string 相当于xpath中的 /text()...
2019-03-20 17:05:59
331
原创 爬虫——利用xpath插件爬取段子
# 项目需求:利用Xpath 获取段子的内容和作者 https://ishuo.cn/joke import requestsfrom lxml import etree# 指定urlurl='https://ishuo.cn/joke'headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/5...
2019-03-20 16:02:49
441
原创 爬虫——练习分页爬取糗事百科热图,保存图片到本地
os模块操作re模块操作requests操作缺点是有点慢import requestsimport reimport osif not os.path.exists('./img2'): os.mkdir('./img2')start_page = int(input("输入起始页码"))end_page = int(input("输入终止页码"))proxies...
2019-03-20 12:48:39
986
原创 爬虫-使用代理ip,使用session
1、使用代理ip和普通requests.get请求抓取页面流程一样,只是多了个参数proxies.http://www.goubanjia.com/ 找代理IP,注意http,https,选与目标网址一样的协议。proxies字典格式的import requestsurl='https://www.baidu.com/s?wd=ip&ie=utf-8'proxies={...
2019-03-20 09:33:18
4079
原创 爬虫——练习-爬取一定范围内的页面数据
爬取前三页的数据第一次写的代码:# 综合项目实战:爬取搜狗,知乎某一词条对应的某一范围页码的数据# 分析下爬取第一页的url和第二页的url,get请求参数中只有page在变,把url固定,变量封装import requestsurl='http://zhihu.sogou.com/zhihu?'headers={"User-Agent":"Mozilla/5.0 (Windo...
2019-03-19 21:32:58
1455
原创 爬虫——requests基本请求,get和post
get请求response=requests.get(url=url,params=params,headers=headers)不带参数:response 对象其他重要属性import requestsurl='https://www.sogou.com/'response=requests.get(url=url)#二进制(byte)类型的页面数据print(re...
2019-03-19 18:01:03
3498
原创 爬虫--基于urllib的简单的爬虫反爬虫
anaconda下自带 jupyter notebook ,安装及环境变量设置参考:https://blog.csdn.net/Light__1024/article/details/88655333简介:爬虫,模拟浏览器浏览网页,抓取页面数据(抓取全部数据或指定数据)。robots.txt协议,口头协议,约定爬虫数据的获取要遵循的协议。NEW点击Folder新建一个文件夹点击...
2019-03-19 12:55:58
937
原创 常见问题(补充中)
1、anaconda配置环境变量我的电脑右键-属性-高级系统设置-高级-环境变量中在path中加入F:\Anaconda3F:\Anaconda3\ScriptsF:\Anaconda3\Library\bin
2019-03-19 11:05:29
249
原创 中间件
django声明请求周期浏览器发送请求wsgiref收到请求信息解析封装成request(django封装了7个中间件,settings里有middleware源码,一个中间件就是一个类,执行中间件,)执行每个中间件的process request路由分发给试图函数调用数据库models和模板层templates,取出数据返回消息执行中间件process res...
2019-03-16 13:03:12
1206
原创 用户认证组件auth
django有自带的用户认证组件:自动用session记录登陆验证状态,将用户名和密码表存在了dajngo自带的auth_user里。 用户表:dajngo自带的auth_user (不在models里创建表,直接做数据库迁移,查看数据库由auth_user表) 控制台创建超级用户:python3 manage.py createsuperuser主要语法:auth模块:fro...
2019-03-15 13:16:01
551
原创 forms组件
校验功能就是将form表单中的值在post请求发送到服务端时,服务端利用forms组件去检验是否符合规则form表单中的name属性值要和自定义forms组件的字段一致 <h3>简单form</h3> <form action="" method="post&quo
2019-03-13 11:52:00
684
原创 分页器
语法基础:def index(request): ''' 批量导入,数据准备:Book.objects.bulk_create book_list=[] for i in range(100): book=Book(title="book_%s"%i,price=i*i) book_list.append(book) B...
2019-03-12 16:23:40
635
原创 Ajax
文章目录简介向服务器发送请求的几种方式:AJAX基本语法:示例:form表单注意:ajax注意:总结:简介向服务器发送请求的几种方式: 1. 地址栏输入URL并回车 GET 2. a标签 href属性 GET 3. form表单 act...
2019-03-12 14:33:54
175
原创 django——多表创建,添加纪录,查询
MySQL中表之间的关系与MySQL中表之间的关系类似:一对多,多对多,一对一。mysql建立关系方法:https://blog.csdn.net/Light__1024/article/details/88344675https://blog.csdn.net/Light__1024/article/details/88342893django中处理方法: 一对多,在多的表中建立...
2019-03-11 11:58:55
1489
原创 MySQL——内置功能
文章目录视图触发器创建触发器查看和删除触发器存储过程无参有参:程序与数据库结合使用的三种方式事务函数视图视图就是给查询过程中的临时表命名,是一个虚拟表(非真实存在),再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可。#语法:CREATE VIEW 视图名称 AS SQL语句如果有课程表和老师表两张表,查询某个老师交的课程需要子查询:#查询李平老师教授的课程名 ...
2019-03-08 18:36:10
302
原创 数据库——权限管理
权限管理,授权操作只能以root操作select * from mysql.user\G 查看拥有user权限的用户create user '用户名'@'localhost' identified by '密码';新增之后再查看就有了。默认造出来的在user表里没有任何权限。select * from mysql.db\G 查看拥有db权限的用户在db级别有权限。默认是test以...
2019-03-08 16:37:57
1199
原创 数据库——多表查询
文章目录1、多表连接关系:交叉连接:生成笛卡尔积内连接 inner join :找两张表共有的部分左连接: left join 以左边为准右连接:right join 保留右表的记录全外连接:union 间接实现2、完整的执行顺序3、子查询带IN关键字的子查询带比较运算符的子查询带EXISTS关键字的子查询1、多表连接关系:主要语法:SELECT 字段列表 FROM 表1 ...
2019-03-08 16:37:10
297
原创 数据库——单表查询语法:语法顺序与执行顺序
文章目录1、单表查询语法优先级,从上往下2、select 四则运算和自定义显示格式3、WHERE约束4、GROUP BYgroup_concat聚合函数5、HAVING过滤6、ORDER BY7、限制查询的记录数:LIMIT8、正则查询1、单表查询语法优先级,从上往下执行顺序写查询语句时按优先级思考!from 库,表 先找到文件夹where拿着where指定的约束条件,去文件/表中取...
2019-03-08 15:27:31
905
原创 数据库——表之间的关系
一对多(或多对一):一个出版社可以出版多本书关联方式:foreign key 多对多:一个作者可以写多本书,一本书也可以有多个作者,即多对多。先建立完成插入记录完成两个表之后,再建立关系,然后插入记录。关联方式:foreign key+一张新的表create table author2book(id int not null unique auto_increment,a...
2019-03-08 11:59:39
793
原创 数据库的创建表时,字段的数据类型和约束条件
文章目录数值类型:整数类型:浮点型:日期类型:字符串类型:枚举类型与集合类型:数值类型:整数类型: tinyint 默认有符号,[unsigned]代表无符号,超出范围显示最大范围。语法:tinyint[(m)] [unsigned] [zerofill] int类型无符号的存储宽度4个字节, 创建表整形类型不指定宽度。指定宽度对存储宽度没用,只是更改显示宽度。显示宽度是指...
2019-03-08 10:46:34
11644
1
原创 MySql 数据库存储引擎
文章目录常用引擎使用引擎常用引擎数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。1、InnoDB 存储引擎 从 My...
2019-03-08 08:39:38
214
转载 通过pycharm的database设置进行数据库的可视化
下面来说一下怎么通过pycharm来设置吧。首先打开database,一般在pycharm的右边侧栏中,也可以通过(View–>Tool Windows --> database)打开打开后点击添加按钮,会让我们选择Data Source(这里的类型还是比较多的,基本上我们使用的都能够支持)选择好我们需要添加的数据库之后,就可以填写相关数据库的配置了。(这里我自己选的是mysql...
2019-03-07 16:29:03
1965
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人