python学习心得

  • 人生苦短,我用python。看到python有那么多开放的库,短短几行代码就能搞定一个项目,有点面向对象的经验确实很容易学习。
    • 1、 语法基础
    • 2、 项目练习
    • 3、 项目过程中的一些心得
    • 4、 一些常用的包及模式化用法

人生苦短,我用python。看到python有那么多开放的库,短短几行代码就能搞定一个项目,有点面向对象的经验确实很容易学习。

1、 语法基础

语法我是跟着廖雪峰老师的官网走了一遍,廖老师的python网站
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
对于非0基础的同学,看看他的高级特性里面的切片,迭代,生成器,高阶函数,闭包,装饰器就差不多了。
python主要是用各种包,包括多线程,异步io,网络编程,gui编程都有各自的包,用到的时候去学就行了。

2、 项目练习

我学python最主要是对爬虫跟数据处理感兴趣,所以学习爬虫项目。我是跟着脑海中的项目擦的项目学习的,他目前正在更新爬虫100例的课程。课程地址:
https://cloud.tencent.com/developer/column/74376
橡皮擦的课程爬的都是一些比较主流的网站,估计怕侵权问题,有不少项目都没有上传完整的代码到git,所以一开始要完全实现功能需要动一些脑经,建议私信跟博主多交流,一定要自己先写。

3、 项目过程中的一些心得

橡皮擦的爬虫课可能对版本有一些前后不一致的地方。python这玩意用的就是新,所以不建议按照他的版本(python3.5+mongodb),因为3.5版本对后面的一些库是不支持的,所以建议用新的,橡皮擦后面用到的一些库都是python3.6之后支持的,mongodb对没有数据库经验的同学也不友好。
我的环境是

C:\Users\liufeng>pip3 -V
pip 10.0.1 from d:\python3.7\lib\site-packages\pip (python 3.7)C:\Users\liufeng>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

不是最高的,但是至少保证后续pip一些包都不会出现不支持的现象
另外mongodb是非关系型数据库,数据存入简单,但是数据可视化或者取用对初学者相当不友好,建议使用mysql,对应的python包是pymysql。

4、 一些常用的包及模式化用法

对于网络爬虫来说,原理相当简单。无非就是爬取页面,解析html找到规则,获取想要的信息,进行数据分析。
爬取页面常用requests,对于需要登录的页面获取用selenuim模拟登录,对于异步用aiohttp,一些模式化的代码。
异步io获取到页面的标准写法

    async def get(self,url):async with aiohttp.ClientSession() as session:try:async with session.get(url,headers=self.__headers,timeout=3) as res:if res.status==200:#将获取到的页面转化成text保存result=await res.text()return resultexcept Exception as e:print(e.args)

异步任务开启的标准写法

    def run(self):loop=asyncio.get_event_loop()tasks=[self.parse_html(page) for page in range(1,10)]loop.run_until_complete(asyncio.wait(tasks))

请求根据网站用get和post,对付反爬,常用的伪装代理包

from fake_useragent import UserAgent
ua = UserAgent(use_cache_server=False) #注意如果没有括号内内容会报错

获取到html后要定位自己需要的页面代码,常用lxml(要学习xpath语法),json包,也要用到正则模块,对于正则不熟悉或者平常工作不处理数据的工程师有一个非常友好的网站:
http://txt2re.com
填入要分析的字符串,选中需要获取的字符串,然后点击show match,再选择语法,就帮你把所有的正则都写好了。
数据保存用到数据库,保存为cvs用pandas
mysql数据存储

import pymysql
#连接本地test数据库
db=pymysql.connect(host="localhost",user="root",password="123456",db="test",port=3307)#使用cursor()方法创建一个游标对象
cursor = db.cursor()#使用execute()方法执行SQL语句
cursor.execute("SELECT * FROM userinfo")#使用fetall()获取全部数据
data = cursor.fetchall()#打印获取到的数据
print(data)#关闭游标和数据库的连接
cursor.close()
db.close()

mongodb存储

import pymongo
DATABASE_IP='127.0.0.1'
DATABASE_PORT=27017
DATABASE_NAME='sun'
client = pymongo.MongoClient(DATABASE_IP,DATABASE_PORT)
db=client.sun #此处数据库sun要先在mongodb里面建好
db.authenticate("dba","dba")
collection=db.href #插入数据集合,名称可以任意
db.collection.insert_many(data,ordered=False)  #data构造好后,插入操作

pandas保存为本地cvs

import pandas as pd
data=pd.DataFrame(all_data) #构造好all_data后协程数据帧
data.to_cvs("filename",encoding='utf_8_sig') #将数据写入文件

获取图片链接后保存图片

 try:response = requests.get(pic_url,headers=headers)with open(filename,'wb') as f:f.write(response.content)f.close()except Exception as e:print(e)pass

写了这么多,其实,抓图才是我学爬的第一动力!!!!!!!!!!!!
最后心得,爬虫很简单,但是一定要在wifi下跑代码,否则伤钱!!!!!!!!

我会持续更新这一块的学习心得,要感谢橡皮擦老师!!!!!!!

python学习心得(一)相关推荐

  1. 大一上学期Python学习心得体会

    Python学习心得体会 经过了大一上学期的Python学习,我已经逐渐摸索到了Python的一些学习方法,学习Python,就像学习其他编程语言或者是学习一门外语一样 ,我们应该从Python的基础 ...

  2. python学习心得和体会

    这是我第一次的博客发文,来记录我初学python的心得体会. python相对于其他计算机语言来说入门简单,且发展前景良好.正所谓:人生苦短,我选python. python与C语言作一些比较: 1: ...

  3. python心得1000字-python学习心得(一)

    ~~缘 起~~ 2017年11月,一群编程零基础的小伙伴们成立了Python学习小组,12名学员从此夜以继日地奔赴学习的征程.一个月过去了,从在屏幕上用最简单的语句打印出"Hello, Py ...

  4. 学python心得体会1000字-Python学习心得体会总结,不要采坑

    大家要持续关注哦,不定时更新Python知识哦! Python 作为一个近年备受好评的语言,它的一些优点让人无法忽视.Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.它的 ...

  5. python学习心得体会(一)

    大家要持续关注哦,不定时更新Python知识哦! Python 简介 Python 作为一个近年备受好评的语言,它的一些优点让人无法忽视.Python 是一个高层次的结合了解释性.编译性.互动性和面向 ...

  6. python实训报告心得体会-Python学习心得体会

    首先最开始,我们要明确一点,学习编程不是一日之功,需要每天投入时间学习,也不可纸上谈兵,需要自己亲自操作,不动手就不会发现问题,动了手印象才会深刻,记得更靠. 接下来我就稍微总结一下,我在学习中遇到的 ...

  7. 学python的心得体会-Python学习心得

    作为一名Python小白,你是否也想知道前辈们是怎么学习Python的?是不是也很想知道他们在Python学习过程中都遇到过哪些困难?那么,你可需要仔细看看这篇文章了. 说说我自学的过程吧,我一开始是 ...

  8. 学python心得体会800字-python 学习心得

    ##多用类或是函数 我以前写的时候,不用函数,从头写到尾,后来,要改成函数,也是要花很多测试的时间,改的话还得一个调试,如果一开始就用函数的话,就能节省很多时间. ##函数的功能尽可能的小 比如说像我 ...

  9. 初学python的体会心得-python学习心得:如何入门

    其实还有一个理由要写这篇文章,就是最近发现朋友圈的python广告几乎刷屏了,而且广告很吸引人,以9.9元甚至免费.寓教于乐为噱头,其实免费课程只是做个python介绍,想要进一步学习要交差不多200 ...

最新文章

  1. ICLR 2020被爆半数审稿人无相关领域经验,同行评审制度在垮塌?
  2. kafka不使用自带zk_kafka 安装部署教程
  3. 自定义checkbox,redio等
  4. 16第一章 ASP.Net编程基础知识
  5. Java 异常处理的误区和经验总结--转载
  6. 关于realarm210 realarmTest.apk不能直接安装问题解决方法
  7. python与正则表达式(part6)--re模块使用
  8. [蓝桥杯2016初赛]卡片换位-bfs
  9. vue项目登录及token验证 vue-ant
  10. Leetcode——两数之和
  11. C# 调用word时,禁用宏
  12. CSDN《程序员》杂志创始人蒋涛-推荐《程序员职场第一课》
  13. python 模拟登录博客园并且自动发布一篇文章
  14. Java基础知识总结(超级经典)
  15. Chemex 打印标签二维码扫不出信息,跳转地址不正确404,如何改代码?
  16. 中科大计算机招非全日制,中国科学技术大学工商管理(非全日制)招生简章
  17. A股实时行情接口资源分享
  18. 机会总是留给有准备的人 —— 从裁缝到码农
  19. 计算机网络里的DHCP是什么,路由器的DHCP是什么意思?有什么作用
  20. Python|几十行代码带你简单实现模拟浏览器操作

热门文章

  1. VUE Mac 项目拷贝后webpack-dev-server:Permission denied 权限问题
  2. linux下c语言抓包,C语言实现抓包工具
  3. 清理 C 盘空间最简单的方法
  4. 基于PCNN脉冲耦合神经网络的图像分割
  5. R.dimen文件:
  6. 工作3年=工作20年 51.com大规模招聘
  7. H5 img图片标签及其属性
  8. 基于 HTML5 Canvas 的电信机柜 U 位动态管理
  9. 武汉理工计算机网络教学平台,武汉理工大学网络教育《计算机网络》练习题库.docx...
  10. 商用WiFi如何在三四线城市挣到钱?