最近突然迷上了Python,至于为啥?几个原因吧!
Phthon运用最多的行业
1.网络爬虫
爬虫应该是 Python 新手玩家最喜欢的应用领域了。这里给大家科普一下:爬虫,指的是从互联网采集数据的程序脚本。爬天爬地爬空气 ,无聊的时候爬一爬吃鸡数据、b 站评论,能得出很多有意思的结论。
2.数据分析
爬取大量的数据只是第一步,要让这些数据发挥价值,就需要学会数据分析。对数据进行清洗 、去重 、存储 、分析 、可视化等处理,从大量的数据中发掘规律,挖掘有价值的商业信息等,并以直观的形式呈现出来 ,才能高效的获取到需要的信息。而 Python 为这个领域的工作提供了 Numpy 、Pandas 、Matpoltlib 等众多功能强大的 Python 第三方库。
3.人工智能
其实 ,Python 无论是在传统机器学习还是深度学习领域都占有不可替代的地位 。有很多成熟的第三方库,诸如 Scikit-learn,scipy 等机器学习库使得 Python 在传统机器学习领域极具优势。Keras 、TensorFlow、Pytorch 等深度学习主流框架更是决定了 Python 在深度学习领域的天选之子地位。而还有一点更重要的原因,Python 语法简单,逻辑直白,使得相关工作人员能将更多的精力放在算法逻辑上,而不是写代码,这也是很多语言所欠缺的。
其实最感兴趣的还是用它写脚本和网络爬虫!
这是今天写的一个爬取某瓣电影排行top250的电影
from lxml import etree
import requests
import pandas
from pandas import DataFrame
name = []
star = []
actor = []
type = []
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'Cookie':'ll="108288"; bid=LIEbG5bmxWQ; _pk_id.100001.4cf6=055b43b4526470b7.1700120907.; __utmc=30149280; __utmc=223695111; __utmz=223695111.1700120910.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __yadk_uid=JUFUuL2QjZFfTjGBwy0hv0PbbjpwTDQ3; dbcl2="275947167:yxvXQdGN5+0"; ck=BiCn; push_noty_num=0; push_doumail_num=0; __utmt=1; __utmv=30149280.27594; ap_v=0,6.0; __utma=30149280.551960541.1699862371.1700198835.1700198914.6; __utmz=30149280.1700198914.6.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmb=30149280.2.10.1700198914; __utma=223695111.593285248.1700120910.1700189671.1700198948.4; __utmb=223695111.0.10.1700198948; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1700198949%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Da_9QvJ5J6PxE5YrNk6c5WT7NE5TL-5t81-wMcbiqeYMjdpfBC8bQHmORvpSsetZ3%26wd%3D%26eqid%3Dd464c37d005e0869000000026555c943%22%5D; _pk_ses.100001.4cf6=1'
}
def test(i):
top_url = f'https://movie.douban.com/top250?start={i*25}&filter='
req = requests.get(top_url, headers=headers).text
selector = etree.HTML(req)
names = selector.xpath('//div[@class="hd"]//a/span[1]/text()')
stars = selector.xpath('//span[@class="rating_num"]//text()')
actor_type = selector.xpath('//div[@class="info"]//div[@class="bd"]//p[1]/text()')
# 将电影名放入list中
for i in names:
# if is_ch(i):
name.append(i)
# 评分
for i in stars:
star.append(i)
# 获取演员信息 和 电影类型
for i in actor_type:
m = i.replace('\n', '').replace('\xa0', '').strip()
lem_a = actor_type.index(i)
if m == '':
continue
if (lem_a % 2) == 0:
# print(lem_a)
actor.append(m)
elif (lem_a % 2) == 1:
type.append(m)
# 判断字符串是否全为中文 (获取中文电影名)
def is_ch(word):
for ch in word:
if not('\u4e00' <= ch <= '\u9fef') and not ('\u3400' <= ch <= '\u4db5') \
and not ('\u20000' <= ch <= '\u2a6d6') and not ('\u2a700' <= ch <= '\u2b734')\
and not ('\u2b740' <= ch <= '\u2b81d') and not ('\u2b820' <= ch <= '\u2cea1')\
and not ('\u2ceb0' <= ch <= '\u2ebe0') and not ('\u2f00' <= ch <= '\u2fd5')\
and not ('\u2e80' <= ch <= '\u2ef3') and not ('\uf900' <= ch <= '\ufad9')\
and not ('\u2f800' <= ch <= '\u2fa1d') and not ('\ue815' <= ch <= '\ue86f')\
and not ('\ue400' <= ch <= '\ue5e8') and not ('\ue600' <= ch <= '\ue6cf')\
and not ('\u31c0' <= ch <= '\u31e3') and not ('\u2ff0' <= ch <= '\u2ffb')\
and not ('\u3105' <= ch <= '\u312f') and not ('\u31a0' <= ch <= '\u31ba'):
return False
break
return True
for k in range(10):
test(k)
writer = pandas.ExcelWriter('D:/douban.xlsx')
data = DataFrame({'电影名': name, '评分': star, '演员': actor, '类型': type})
data.to_excel(writer, sheet_name='豆瓣评分')
writer.close()
代码中判断字段是否是全是中文有点臃肿,这前试错写的
如何将py文件打包成可执行文件
第一步:安装打包所需要的包(pyinstaller)
在cmd窗口中输入
pip install pyinstaller
下图所示出现Successfully即是安装成功了
第二步:修改路径
最好将你要打包的项目单独新建一个文件夹。
将cmd窗口切换到项目所在的文件夹,如下图
第三步:输入打包命
pyinstaller -F -w (-i icofile) 文件名.py
解释一下该命令:
1、-w 表示在打包好程序后,双击.exe文件不会出现黑色的命令窗口。(如果你的程序有print等输出命令,则输出的内容就在此命令窗口中显示)
2、小括号中的内容是可以省略的,-i 表示给.exe文件一个图标,icofile表示图标的文件名,图标的图片格式为.ico格式的。不懂.ico图片的可以百度一下。打包时如果需要给.exe加入图标,将图标文件放到和.py文件同一目录下。(ICO图标在线转换工具 (nyaasu.top))这里给大家一个转换工具。
3、文件名.py 这里的文件名是你要打包的.py文件的名称。
出现 completed successfully 则表示成功!
在dist文件夹下即可找到exe,其他文件可删除不影响程序的运行
一顿操作后,突然发现之前学的java突然就不香了