- 博客(24)
- 收藏
- 关注
原创 爬虫学习笔记--异步编程二
异步编程 1.事件循环 理解成一个死循环 伪代码 任务列表=[] while True: 可执行的任务列表,已完成的任务列表=去任务列表中检查所有的任务,将可执行和已完成的任务返回 for 就绪任务 in 已就绪的任务列表: 执行已就绪的任务 for 已完成的任务 in 已完成的任务列表: 在任务列表中移除 已完成的任务 如果任务列表均已完成,则终止循环 import asyncio #生成一个事件循环 loop=asyncio.get)event_loop() #将任务放到任务列表 loop.r
2021-03-12 09:47:20
272
原创 爬虫学习笔记--scrapy二
全站数据爬取: 将网站中某板块下的全部页码所对应的信息爬取 Scrapy中 Yield scrapy.requests(url= ,callback=self.parse) #手动请求发送:callback回调函数是专门用作于数据解析,,类比递归 -请求传参 -使用场景:如果爬取解析的数据不在同一张页面中(深度爬取) –中间件: —位置: 引擎和下载器之间 ----作用 :批量拦截到整个工程中所有的请求和相应 ----拦截请求: ----ua伪装 ----代理ip -----拦截相应: —篡改响应数据,
2021-03-11 19:24:19
234
原创 爬虫学习笔记---异步编程一
协程 协程不是计算机提供的,程序员人为创造。 协程,也可以成为微线程,是一种用户态内的上下文切换技术,简而言之,其实就是通过一个线程实现代码块相互切换执行,例如: def func1(): print(1) def func2(): print(2) func1() func2() 实现协程的方法: 1.通过greenlet模块,早期模块 2.yield关键字 (类比scrapy) 3.asyncio 装饰器 4.async,await 关键字(主流,py3.5之后) 1.通过greenlet模
2021-03-11 17:31:24
216
原创 爬虫学习笔记--selenium
selenium :浏览器自动化的操作,浏览器自行自动操作 使用流程: –环境安装 pip install selenium –下载浏览器的驱动程序 ----通过selenium模块实例化对象 from delenium import webdriver from lxml import etree #实例化浏览器对象 bro=webdriver.xxx(excutable_path='') #xxx代表浏览器名称,path为驱动程序的路径 #编写基于浏览器自动化的代码 bro.get('www.xxx
2021-03-10 17:20:02
239
原创 pandas
一、生成数据表 1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2、导入CSV或者xlsx文件: df=pd.DataFrame(pd.read_csv('name.csv'),header=1) df=pd.DataFrame(pd.read_excel('name.xlsx')) 3、用pandas创建数据表: import numpy as np import pandas as pd d
2021-03-09 23:22:10
288
1
原创 爬虫学习笔记--协程
单线程+异步协程 event_loop :时间循环,相当于一个无限循环,我们可以把一些函数注册到这个事件循环上,当满足某些条件时,函数就会被执行 corouteine:协程对象,我们可以将协程对象注册到事件循环中,它会被事件循环调用。我们可以使用 async 关键字来定义一个方法,这个方法在调用时不会立即执行,而是返回一个协程对象。 task:任务,它是对协程对象的进一步封装,包含了任务的各个状态 future:代表将来执行火还没有执行的任务,实际上和task没有本质区别 asnyc 定义一个协程 awai
2021-03-09 17:32:56
224
原创 h5学习笔记---day3
1.内部样式表 说明style标记创建样式时,最好将该标记写之间 2.内联样式表 3.引用外部样式表 <link rel=”stylesheet” type=”text/css” href=’目标文件的路径及文件名全称 /css文件路径‘> 说明:使用link元素导入外部样式表时,需将该元素写在文档头部,即与之间 rel:用于定义文档关联,表示关联样式表 Type:定义文档类型 emmet语法 复合选择器 基础选择器的复合 后代选择器 又称包含选择器,可以选择父元素中的所有子
2021-02-26 10:28:51
150
原创 h5学习笔记--day2
无序列表 使用ul标签表示无序列表,列表中的列表项使用li标签进行定义 并且ul中只能出现li标签 有序列表 如上使用ol嵌套li标签表示 自定义列表 使用dl定义描述列表,dt为定义项目和名字,dd为描述每个项目 <dl> <dt></dt> <dd></dd> </dl> 表单 表单域 表单域是一个包含单元素的区域 使用form标签用于定义表单域,以实现用户收集和传递 用来提交给服务器 <form action=
2021-02-20 21:52:54
227
原创 h5学习笔记--day1
在vs中使用!加tab键可以在创建好的HTML文件中直接生成HTML骨架 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initia
2021-02-19 22:05:27
161
原创 django学习笔记--- Python脚本中调用Django环境(django外部脚本使用models)
如果你想通过自己创建的python文件在django项目中使用django的models,那么就需要调用django的环境: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() from app01 import models #引入也要写在上面三句之后
2021-02-19 10:37:38
550
原创 django学习笔记--url反向解析
url反向解析 第一步:由于将来项目中的不同功能对应的url路径可能会发生变化,所以我们在每个url路径上加一个别名,将来通过别名反向解析来使用这个别名对应的路径,那么不管路径将来发生什么变化,只要别名不变那么逻辑中使用这个路径的地方,都可以通过别名获取到 别名的用法: urlpatterns=[ url(r'',,name='')#在name中取别名 ] views视图中使用url反向解析的方式: from django.urls import reverse #url别名反向解析,通过那么别名对
2021-02-16 16:33:47
381
1
原创 django学习笔记--注意点
distinct 在使用时有时候会达不到我们想要的结果,原因之一是因为使用distinct字段的同时使用models对象类的class meta进行默认字段排序,进而导致,所以在使用过程中要么使用默认排序,要么不使用默认直接使用order_by进行指定字段排序 chioce属性 在存储中,有时会有这样的数据,xxx 男性 xxx 女性 为了便于使用有时会做这样的处理 sex_choice=models.IntegerField(chioces=((1,'男性'),(0,'女性')))#将男性转换成
2021-02-16 10:54:56
354
1
原创 django学习笔记---orm增删改查
增加 def add(request): import datatime #方式1 book_obj=models.Book( title='', state='', ) #方式二 book_obj2=models.Book.objects.create( title='', state='', ) book.obj2.save()#保存数据 #create方法会返回新添加这条记录的类对象,通过这个对象,属性的方式能够获取到对应字段的数据 return pass
2021-02-14 21:25:56
221
2
原创 django学习笔记--组件
组件 组件就是一个html文件,其中封装了一些特定的功能,比如就是一个导航栏,或者一个左侧菜单栏,相当我们讲一些特定的功能封装成了一个组件,将来任何其他html文件中如果使用这部分功能,可以直接引入使用。 在django模板渲染系统中使用 第一步: 创建组件的html文件 第二步: 使用组件,使用之类引入 {%include ‘ xxx.html ’%} inclusion_tag 自定义标签 动态组件的应用: 注意:在setings文件中的INSTALLED_APPS配置当前app,不然dja
2021-02-14 10:57:15
198
1
原创 大数据处理思路---java
package org; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; impo
2021-02-13 21:28:20
299
原创 爬虫学习笔记--scrapy
scrapy的功能:高性能的持久化存储,异步的数据下载,高性能的数据解析操作 分布式 1.创建一个工程 Scrapy startproject xxxxx 2.在spiders子目录中创建一个爬虫文件 Scrapy genspider spiderName www.xxx.com 3.执行工程 -scrapy crawl spiderName Allowed_dimains 允许的域名:用来限定star_urls列表中那些url可以进行请求发送 Start_urls:起始域名列表:该列表中存放的ur
2021-02-13 21:20:58
325
1
原创 爬虫学习笔记2
在爬取网页信息时有时会遇到有账号信息输入的网页,需要填入账号密码后跳转才能进行爬取信息,但我们常用的http协议是无状态协议,它的问题在于即便在登陆面板登陆状态成功,在你访问个人主页时是不会跳转的因为服务器默认你是新的请求而没有登录状态。 将html页面中使用审查元素将本页面的数据包解析后,在headers中的cookie值封装到python中的header 字典中并同以往发起请求即可。但是这种方式是手动cookie链接,一般情况下并不采取这种方式进行解析。原因是手动获取的cookie在网页中有时是变化的,
2021-02-13 21:13:22
153
原创 爬虫学习笔记
在爬虫中使用正则表达式是很麻烦的过程,在实际应用中有一个python特有的第三方库 bs4来替代正则表达式的用法,首先使用 pip install bs4 下载并同样方法下载lxml插件(后续介绍) Bs4 的使用是需要将一个对象实例化的库,(两种方式) 1. Fp = open(“./filename”,’r’,encording=’utf-8’) Soup = Beautifulsoup(fp,’lxml’) #第二个参数固定 Soup = Beatifulsoup(respons
2021-02-13 21:10:44
371
原创 正则表达式
正则表达式主要应用于对特殊或一般的长字符串特定子串的提取或处理 由于正则表达式用法过多,暂时标注常用用法,其他的如遇到用下方链接查找 https://www.cnblogs.com/dyfblog/p/5880728.html博客–正则 https://www.runoob.com/regexp/regexp-metachar.html菜鸟教程–正则表达式 Import re 引入正则表达式的库函数 1.re.findall(str,string) search函数用法相同但是查找到第一个就返回,并返回一
2021-02-13 21:06:00
124
1
原创 django学习笔记4
CBV和FBV FBV(function base views) 就是在视图里使用函数处理请求。 之前都是FBV模式写的代码,所以就不写例子了。 CBV(class base views) 就是在视图里使用类处理请求。Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:提高了代码的复用性,可以使用面向对象的技术, Django的url是将
2021-02-08 22:11:15
104
原创 django学习笔记三
request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息(请求报文中的请求行、首部信息、内容主体等)的HttpRequest对象。 Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。 Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 请求相关的常用值 pa
2021-02-08 17:01:21
237
原创 django学习笔记(2)
有时候遇到的问题是你可能会创建好的html文件在views中函数正确书写但网页无法找到,这就需要你在settings中进行改写dir 在使用django的时候,经常遇到域名多变的情况,但是仅仅在views中进行判断或者写函数并不能灵活解决这些问题,但url。py的path()中有正则匹配域名,若使用()进行提取的话,会自动将提取的传递给后面的方法并作为参数,所以仅仅需要我们加一个形参变量,并且改写表达方式即可。 无名分组路由 看写法,在urls.py 文件如下 urlpattens=[ path('boo
2021-02-07 16:47:06
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅