课程:《Python程序设计》
班级: 2031
姓名:梁志鹏
学号:20203112
实验教师:王志强
实验日期:2021年5月24日
必修/选修: 公选课
1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
鉴于课程最后学习的网络爬虫技术,以及最近表情包资源稀缺,想到可用python实现网络爬虫对于图片的抓取。
2.实验过程及结果
构建一个网络爬虫程序,对小的易于爬取的表情包网站:https://www.fabiaoqing.com/
进行对于关键词搜索后的表情包的抓取并下载到本地所创建的“表情包”的文件夹中
文件格式为.jpg
文件名为:序号+原图片名称。
创建相应模块:
1.requests模块,用途:发送网络请求,并返回响应数据。
2.re模块,用途:通过正则表达式操作实现对文件名的更改。
3.os模块,用途:实现对文件夹的创建与文件操作。
代码如下:
运行结果:
3.实验过程中的问题与解决
1.创建模块失败
由于python安装路径与pycharm不同,使用pip命令安装requests等模块时,未安装到python的根目录下,导致无法调用。
#解决方法:在pycharm项目设置中更改解释器目录即可
2.未加请求头导致网站爬取失败
#解决办法:增加浏览器请求头
3.图片下载后保存路径出错,在目标文件夹里找不到图片且每次爬取完需重新搜索目标文件夹。
更改目标文件夹路径,将图片保存到程序所在文件夹。
......(此处省略n次报错)
最后将代码push到码云上:https://gitee.com/besti2021python/lzp203112/blob/master/%E5%AE%9E%E9%AA%8C%E5%9B%9B.py
## 其他(感悟、思考等)
1.学而时习之,实践是锻炼编程能力的最好途径,有问题要懂得自我找寻答案,百度是个好老师。
2.使用爬虫可以简便地实现许多简单而繁琐操作,作为面向对象的语言,轻巧的Python可以很好地实现许多有用的功能。
3.python的一大优势在于其丰富的资源库,对于模块的调用可以组合实现许多强大的功能。
4.每次的报错的解决可通过百度翻译或者百度搜索来实现。
5.对于模块的学习应用可以通过b站资源的教程来学习自己需要的模块。
## 参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
- ...