引言
首先声明,笔者所说的0基础并非编程0基础,而是系统学习过c++程序设计,编程水平中等偏上。只是对Python的语法、HTML的架构、 络通信的HTTP协议一无所知。
学习Python的背景是小老板让我查找近五年相关领域申请通过的全部自然基金,并做成excel表给他。大概查了一下,上千条信息,海量的工作量,于是萌生了用Python爬一下的构想,顺便解锁新技能。
从萌生想法到爬取成功历时4天,为了方便大家阅读,我把内容分为三章,分别是软件安装,初窥门槛,源码解析。
(一)软件安装:包含了Python和Pycharm下载安装过程中踩的坑、cmd命令及虚拟环境安装设置。Python解释器和lxml库版本不匹配,及lxml库中etree模块缺失导致的attribution 错消耗了我两天时间,这期间一条代码都没跑通,差点被劝退。从0到0,历时两天。
(二)初窥门槛:记录我完成版本匹配后,学习谷歌Web Scraper插件并被劝退,逐渐跑通Python代码,学会获取url,成功识别 站“乱码”,完成程序架构设计的全过程。至此我确定了凭自己的能力可以用Python完成既定目标,不用手自笔录从 站复制数据。剩下的拼图还有三块:学习正则表达式、数据写入列表、数据导出excel。从0到0.001,历时一天。
(三)源码解析:完成程序架构设计后,我花大半天学习了正则表达式,再用一天的小尾巴完成了从html用正则表达式筛选数据、动态翻页、数据写入列表、数据导出excel等功能。从0.001到1,历时一天。
废话不多说,让我们开始吧。
任务描述
获取2015-2020年通过申请的国家科学自然基金中,E.工程与材料科学部下,E03.有机高分子材料及E05.机械设计与制造,这两子类的全部项目关键信息,并制为excel表。
经过广泛搜索,最终确定 站为爬取对象, 站首页如下图所示。

软件安装的第一次尝试
- 学习使用cmd命令
(1)打开cmd并进入指定文件夹,参考教程:(2)利用cmd中pip指令安装requests,lxml等库,参考教程:
- 版本不匹配及属性缺失
运行大佬“你缺少想象力”的源程序时,发现PyCharm 错,百度得知,原因是高版本lxml中移除了etree模块,源程序如下。
Python解释器及lxml版本不匹配的解决方法
不同版本Python应适配不同版本lxml,为解决不同版本Python解释器在同一台机器上的兼容并存,常采用安装虚拟环境的方法,详见教程:
按上述教程,在安装Python 3.9.0后安装Python 3.7.0,用cmd命令反复尝试安装虚拟环境。或因环境变量问题,始终无法解决冲突,最后通过geek卸载了Python和Pycharm,并删除残余文件夹及环境变量,重启后重装Python 3.7.0及Pycharm 2019.3.3。
重装后按上述教程下载库、运行Python程序,不再出现版本不匹配及lxml库不含etree模块的 错。
高版本lxml库不含etree模块的解决方法
在未重装Python和Pycharm前,尝试通过的方法导入etree,依旧失败;重装后问题迎刃而解。源程序如下:
解决方法参见教程:
小结
只有在重装软件后才解决了卡了我两天的版本不匹配和冲突问题,同时我换了个思路,不再纠结于一人的教程,而是广撒 ,疯狂搜索0基础Python爬虫教程,终于获取了几个宝贵的,能在我当前版本软件跑通的源代码。
正是因为改变了思路,我才能站在巨人的肩膀上学习语法和编程思路,快速完成工作。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览211387 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!