bat文件:bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。 使用:在命令提示下键入bat文件的名,或者双击bat文件,系统就会自动调用cmd.exe运行文件。 步骤:
1. 先编写hello.py文件,然后建立它的快捷打开方式---hello.bat文件。
2. 新建一个\"hello.txt\"文档,例如,我也放在了E盘pander文件夹下(右击鼠标,
选择【新建】--【文本文件】),在里面写入: @py.exe E:\\pander\\hello.py 3. 保存这个文档,然后将它关闭。然后重命名文件的类型,将其改为bat文件。
方法二:
借助IDLE来快捷打开Python文件的小技巧
第4关:布尔值
1.布尔值只有True / False 两种
2.固定写法:True、False的首字母大写,其他小写 Python中被设定好的某些数据的真假,如下图
注意:
在使用if等相关诗句时,内部语句一定要缩进。 在写表达式等相关结构时请注意使用英文标点符号。 在功能语句后面一定要注意书写英文的冒号。
第5关:循环
在本关,我们接触到两个重点: 1.while的基础语句
2.while循环内部使用的两种子句:break子句、continue子句
第7关:列表和字典
list是一种有序的集合,可以随时添加和删除其中的元素。
字典是键值对(key=>value)的集合,字典的格式规范是:d = {key1 : value1, key2 : value2 }
使用字典的注意事项: 1,字符串必须要加引号
2,每一个键的名字必须是唯一的
第8关:for循环
for是可以跟else搭配的,当迭代的对象迭代完并为空时,位于else的子句将执行,而如果注意:
在for循环中含有break时则直接终止循环,并不会执行else子句
第9关:函数 处理异常
函数:
是组织好的、可以重复使用的、用来实现单一功能的代码。
函数的返回:return
随机函数的使用:
变量作用域:
局部变量:在一个函数内定义的变量,仅能在函数内使用。 全局变量:在函数外定义的变量,可以在程序的任何位置使用。 控制流中的处理异常:
第10关:编码
编码和解码是实现人类语言和机器语言的相互转换的唯一渠道。 程序格式是这样的:
print('延君'.encode('utf-8')) print('K'.encode('ASCII'))
encode的作用,使我们看到的直观的字符转换成计算机内的字节形式。 decode刚好相反,把字节形式的字符转换成我们看的懂的形式。
第11关:文件读写
读文件:
写文件:
文件读取相关使用说明:
注意事项:
1、如果你想读写的内容是一串文字,建议搭配readline(),这个函数会从abc.txt文件取得一个字符串的列表,列表中的每个字符串就是abc.txt中的每一行。而且每个字符串后面还有换行的\\n符号;
2、为了使每一行的数据遍历,需要用到之前学过的for...in...循环;
3、把每一行的名字和分数分开,需要用到split()函数来把字符串分开,它会按空格把字符串里面的内容分开。其中还有一个join()作用相反,是把字符串合并的。
第12关:类与对象
第13关:常见模块集合:
第1, 图形界面
第2, 数据分析。
第3, 文档处理。
第4, 信息传输。
第5, 自然语言处理
第6, 多媒体处理。
第7,其他
第14关:打包成 exe --- pyinstaller
1.打开终端,安装pyinstaller模块: pip install pyinstaller 2. cmd中进入要打包的项目的py文件所属目录
3. 在cmd中执行命令pyinstaller 文件名(为防止出错,建议把中文的文件名改为英文)
4. 成功之后,打开你的文件夹,会发现多了四个文件。此时dist文件夹,就含有打包
成的exe。
注意事项: 问题解决
1、文件一闪就没了的话,试试给你的py文件最后加上一句input(),这样可以让运行完的程序停留下来,等待你输入任何按键之后停止。
2、转换失败的话,尝试将py文件名改一下,改成简单的英文名字再尝试,或者更换一个文件夹
3、保你的代码能在编辑器上正常的跑通,否则exe文件是无法正常打开的 4、需要dist 里面只生成一个exe文件的话,可以使用pyinstaller -F 文件名
知识点一
1)、Request对象
示例代码: import requests
response = requests.get('https://www.baidu.com') print(response.text) print(response.content)
这里的response其实是一个Response对象,text和content分别表示取这个对象的text属性和content属性。其中text表示文本数据形式的网页源代码,content表示字节型数据的网页源代码。
第一个要了解的是apparent_encoding和encoding属性,其中encoding是从HTTP header中猜测的响应内容编码方式,apparent_encoding是根据响应内容分析出的编码方式。
第二个要了解的是cookies属性,该属性保存了用户的cookie值,我们有的时候可以通过获取到上一个请求的cookie,作为请求头的一个cookie参数传入到请求中。
第三个要了解的是headers属性,这个属性中记录了响应头中的相关内容,虽然不怎么会用到,但还是要理解这是什么。
第四个要了解的是request属性,这个属性记录了请求的相关信息,这其中有一个请求头需要了解一下,通过了解这个请求头,我们能够更加深入地理解我们在编写爬虫的时候,
为什么要在请求头中添加User-Agent参数。
最后一个需要了解的是status_code属性,这个属性表示响应的状态码,当我们一次性爬取的url数量过多的时候,就需要用status_code来过滤掉请求失败的url,否则在后面的数据解析中容易报错,从而导致程序运行的终止。
2)、闲谈数据处理:字符串的6种常用方法
我们用requests.get或requests.post获取到网页的源码,通过BeautifulSoup解析之后,得到的数据还是可能千奇百怪的,可能多了空格,可能有些内容我们不需要等等,所以我们应该对这些数据进行简单的处理。
第一步:strip()处理数据首尾的空格
第二步:replace()替换空格形成一个字符串
第三步:使用split分割字符串
URL拼接问题:startswith方法
endswith方法:
join方法:
列表的去重:
3)、技术选型与爬虫能做什么
Scrapy和requests + Beautifulsoup
库与模块的区别:
一个库可能由多个模块组成,而一个模块就是一个py文件。
Scrapy和requests + Beautifulsoup之间的区别在哪里: ①requests和Beautifulsoup都是库,而Scrapy是框架。
两者根本不理一个层级的东西,每个框架都是集成了很多库的,在这些库的基础上进行了多次封装,做了很多处理。
②Scrapy框架中可以加入requests和Beautifulsoup 在Scrapy框架中,我们仍然可以使用requests和Beautifulsoup,但是极其不建议在Scrapy框架中使用BeautifulSoup。
③Scrapy是基于Twisted开发的,是一个异步的框架,性能是它最大的优势。 举例说明:(同步和异步的区别)
上述代码就是同步的代码,当代码执行到第2行的时候,其实是堵在这里的,因为从发起请求到服务器返回响应的过程是需要一定的时间的,只是这个时间很短,我们感觉不到,但却是实实存在的,只有服务器返回响应之后,代码才会继续往下执行,这就是同步,就相当于我们在等待服务器响应的那段时间是浪费了的。
对于异步:就是很好地利用了服务器返回响应的那段时间,利用那段时间驱动程序去执行别处的代码,等服务器响应之后又回过来,接着继续往下执行。
虽然异步的代码的性能很高,但是编写起来就会相应的很复杂,。 ④Scrapy方便扩展,提供了很多内置的功能 Scrapy本身提供了很多扩展供我们使用,另外还支持我们自定义自己的扩展,去实现我们自己想实现的功能。
⑤Scrapy内置的css和xpath selector选择器非常方便,而BeautifulSoup的最大缺点就
是慢。
因为xpath是用c语言写的,而Beautifulsoup是用纯python写的,所以性能上会存在巨大的差异,一两条可能感觉不大,当要爬取的数据量过大时,这种差距就会越明显。
使用场景:
requests + Beautifulsoup适合于爬取少量数据,临时用用,不适合爬取大量数据。 Scrapy适合于爬取大量数据,更适合商用。
爬虫能够具体做些什么:
①搜索引擎——百度、Goggle、垂直领域搜索引擎
搜索引擎就是不停地在网络中爬取所有的数据,然后对这些数据进行分析,最后给用户提供一个搜索接口。
②推荐引擎——今日头条
推荐引擎也是不停地在网络中爬取数据,但它是有目的地丰爬取,它是事先知道要爬取哪些数据的,然后爬取到数据后,通过一定的算法,将用户感兴趣的内容推送给用户。
③机器学习的数据样本
机器学习、深度学习等等人工智能领域都需要大量的数据来训练写好的算法,使得算法的准确率起来越高,而这些数据从哪里来呢,就可以用爬虫来获取。
④数据分析、舆情分析等
数据分析同样需要样本,而这些数据也 可以用爬虫去网络上爬取。
因篇幅问题不能全部显示,请点此查看更多更全内容