如何入门网络爬虫,摸索一年的心里路程
接触python一年有余,大部分时间都是自己在摸索,走了很多弯路,写下这篇博客以供各位参考,希望大家少走弯路。毕竟人生苦短,少犯低级错误。
首先,我们要了解python能帮助我们的生活吗,否则学它有什么用?想象这样的画面,当我们苦点鼠标去刷新12306网站,只为求一张回家票的时候;当我们陷入office枯燥的重复工作的时候,当我们需要汇总微信发来的信息的时候,当我们需要爬取某网站大量数据的时候,你是否想过只需要几行代码就可以解放双手,摆脱无谓的时间,去做我们想做的事,如果你已经感同身受,就尝试学学python吧。
一、准备工作
1.1 系统
我用的操作系统Windows10,没有用过苹果电脑,所以这里我只讲Windows系统(其实用Linux系统最佳,没有那么多兼容问题)。
1.2 python版本
新手面临的第一个问题就是python版本的选择问题,我推荐python最新版3.7,不用考虑python2版本,马上就停止使用了,但市面上很多参考书都是基于python2版本写的,所以有时候我们也要了解一下python2版本。
1.3 编译器
确定了版本,下一个问题就是安装什么编译器,对于数据分析的同学,我推荐anaconda。下载地址: 官网下载
傻瓜式安装,一路下一步就OK,在这里勾选第一个,把anaconda添加进环境路径。
安装完成打开anaconda里的spyder,图像和界面如下
其界面模拟matlab,用过matlab的同学一定会感到非常亲切,可以实时查看各变量情况,而不需要输入print函数。
还有一个最流行的就是JetBrains PyCharm Community Edition软件,比较适合编写项目使用,具体下载安装请参考python环境搭建和pycharm的安装配置及汉化(零基础小白版)
其实刚入门的小白最怕的就是选择,如果实在不知道该用哪个,就用anaconda,它的优点是简单无脑,非常适合新手,缺点是内置了大量的第三方库(也未必是缺点,省的你自己安装下载了),所以体积略为臃肿,等熟练使用了,再换 PyCharm看看适不适合自己。
1.4 安装第三方库
python只安装了标准库,大量实用的第三方库还需要手动安装,安装方法主要是通过pip进行,步骤是win键+R打开运行,输入cmd确定,进入命令行,输入pip install [packname],这里的packname就是你要安装的第三方库名,例如非常有用的resquests库,安装方法为pip install requests;如果需要卸载就输入pip uninstall [packname]。但这里有个问题就是pip默认使用的下载源是外国网站,下载速度感人,所以最后把下载源改成国内的,当然如果你能忍受这个下载速度,嫌麻烦也可以不换。
国内源:
新版ubuntu要求使用https源,要注意。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,这里不要用系统自带的文本,用notepad++软件进行创建,这个软件网上一搜全都是,程序员必备软件,就不提供下载地址了。
输入内容,编码为UTF-8
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
这里推荐常用的第三方库:
requests(网络爬虫,解析url)
selenium(模拟浏览器爬取)
lxml(解析HTML文档)
openpyxl;xlrd(excel读写)
docx(word读写)
pyautogui(控制电脑鼠标和键盘)
pyinstaller(将python脚本封装为exe文件)
itchat(微信)
uiautomator2(使用adb控制手机自动化测试)
jieba(进行中文语句分词)
wordcloud(词云)
1.5常用软件
推荐一些常用软件,绝对可以大幅提高你的效率
1.Google Chrome(以后网络爬虫分析都用谷歌浏览器)
2.Bandizip(解压,无广告)
3.Fiddler或者Charles(手机抓包)
安装参考:Charles 破解版
4.Appetizer(手机自动化测试)
5.notepad++(程序员专用,可以打开各种类型文件)
6.SketchPath(查看xpath路径)
7.ditto(剪切版,复制粘贴多个数据)
8.天若OCR文字识别(截图识别文字)
9.Everything(秒搜电脑文件)
10.Free Download Manager 5(多线程下载器)
11.spy++(抓取电脑控件)
1.6编程中的好习惯
这里参考知乎一篇回答:编程中,有哪些好的习惯从一开始就值得坚持?
1.规范化自己的代码,少点个人风格,多点通用规矩
2. 宁可变量名长,也不要让变量名短得让人无法推测其含义。
3. 在电脑里安装两套输入法,编程的时候,将中文输入法彻底关掉,确保任何快捷键都不会将其转换成中文输入法,防止中文类似符号引起混淆,
比如:中文 :(); English: () ;
一点点小错误,就有可能让你多花一两个小时在没有意义的事上,人生苦短,尽量避免低级错误。
4.尽可能杜绝重复代码,凡是需要用至少两次的代码,给它单独做一个类或函数。
5.避免类与类之间的内部调用(Cycle Reference),其实也就是降低函数模块的耦合程度。类与类之间的调用只允许通过接口,保证更改某个类的时候,其他的仍然能工作。
6.多读别人的优秀代码,拿别人的优秀代码和自己的代码进行对比,学习别人的长处,吸收经验。
7.尝试着做内容的生产者,尝试着写一些教程或笔记,分享给社区,不要只做社区内容的吸收者,还要不断地生产内容,回馈社区给你的帮助,比如在StackOverFlow上回答别人的问题等。
8.既要脚踏实地,也要多看看社区发生了什么新闻,有什么新的技术和软件的发布,这些技术和软件将怎样影响你的开发工作,现在使用的IDE或Editor是否有更好的替代产品等等。
9.没有任务的时候,也不要闲下来,去开发点你喜欢的东西,从中挑战自己,增长经验。
10.不要过分依赖教程,要学会看官方文档。凡是能被做成教程的东西,往往已经过时了,最新的技术,最新发布的标准,往往没有现成的教程,你需要去认真阅读官方文档,那里的东西才是最权威的。
11.不要参与语言好坏的争论,人们往往偏向于喜欢自己用得熟练,用得多的那个语言,语言好坏之争,就和争谁的女朋友漂亮一样,我当然觉得自己的女朋友(虽然是null)最漂亮,但是别人并不这么觉得。
12.当你有什么需求的时候,往往别人也有这个需求,而且往往也有了相应的工具去解决你这个需求,比如,你想将函数的调用关系可视化,弄成树状图那样,这样的工具已经有了,比如SourceInsight(付费),Source Navigator(免费)等。
13.少在国内的XX软件园里下载各种破解软件,盗版软件等,这些软件园为了盈利,会在你安装的过程中,悄无声息地给你安装上一堆其他的流氓软件,360首当其冲,这些垃圾软件,删的越干净越好。
14.你的开发电脑,CPU可以差些,但内存最好大些,推荐至少要8G,甚至推荐10G往上走,你常常需要同时打开一堆浏览器页面和一个IDE甚至还有别的一堆工具,如果你做过安卓开发,AndroidStudio动辄就调用你电脑2-3G的内存,一般的4G电脑肯定是吃不消的,严重降低开发体验,但也并不是让你换电脑,内存条了解一下。
15.保持一个健康,干净的电脑状态,硬盘里的文件存储要有调理,容易寻找指定文件,降低文件丢失概率,加快文件寻找速度。
16.C盘快满了的话,可以通过Disk Manager将别的磁盘的空间送给C盘。
17.可以考虑用一个电脑架子,防止乌龟颈,保护颈椎。
18.下载一个护眼宝,保护视力。
二、基础篇
准备工作完成,学习基础才是重点,有多少人从入门到放弃,根本上就是没有动力,学习过程中没有得到及时的回馈,遇到错误不知道怎么解决,最后放弃挣扎。所以这里我推荐的学习过程是,在学习python过程中能很快帮助你的生活,例如excel和word自动化处理,手机自动化处理,简单爬取朋友圈数据,微博数据,这些项目能让你有动力继续深入学习下去。
具体过程是边看书,边看python官方文档,边自己编程练习,这样学习效率最高。书籍下面有推荐,为了防止从入门到放弃,这里我只优先推荐一本书,Python编程快速上手 让繁琐工作自动化,非常通俗易懂,缺点是作为python的核心“类”没有讲,但足够让你有动力学习下去。
闲来无事可以看看下面推荐的知乎回答和微信推文,很多有意思的项目也会让你干劲十足。
2.1 书籍入门
1.Python编程快速上手 让繁琐工作自动化
2.python无师自通
3.PYTHON网络爬虫从入门到实践
4.笨办法学Python(第四版)
5.《Python 3网络爬虫开发实战》
也可以参考知乎一篇回答:自学入门 Python 优质中文资源索引
2.2网络教程入门
1.廖雪峰的官方网站
2.Python 3.7.3 中文官方文档
2.3知乎回答
1.你在 GitHub 上看到过的最有意思的项目是什么?
2.爬虫究竟是合法还是违法的?
3.用Python实现ppt转化图片(附带长图合并功能)
4.一篇了解爬虫技术方方面面
5.主流网站 Python 爬虫模拟登陆方法汇总
6.Python爬虫需要学习那些东西?
7.受用一生的高效 PyCharm 使用技巧(一)
8.Google推出了Python最牛逼的编辑器
9.23个Python爬虫开源项目代码,包含微信、淘宝、豆瓣、知乎、微博等
10.7步搞定数据清洗-Python数据清洗指南
11.你们都是怎么学 Python 的?
12.GitHub 上有哪些优秀的 Python 爬虫项目?
13.156个Python网络爬虫资源,妈妈再也不用担心你找不到资源!
14.你都用 Python 来做什么?
15.为什么网络爬虫好难,涉及到的知识我不会?
16.Python的高级特征你知多少?来对比看看
2.4 微信公众号
1.学习python的正确姿势
2.Charles的皮卡丘
3.麻瓜编程
以下为公众号文章
1.如何在手机或 iPad 上写 Python 代码?
2.如何爬取异步加载数据
3.有一个利器,能帮你快速爬取你想要的一切……
4.码农进阶清单 | 每天用干货喂饱你
5.盘点 2017 年 Python 领域值得关注的 5 个库、工具和开发者
6.用 Python 高效办公 | 一次写好100个 word 通知
7.我是如何高效写爬虫的?
8.推荐几个值得关注的爬虫库
9.老司机干货 | 用爬虫来学习 Python 并发编程
10.Python 爬取爱奇艺腾讯视频 250,000 条数据分析为什么李诞不值得了?
三、进阶
选择自己喜欢的领域深入进行研究
3.1 微信
itchat项目简介
3.2 手机自动化测试
1.adb 常用命令
2.ATX 浅谈自动化测试工具 python-uiautomator2
3.全程不用usb数据线,adb通过网络连接Android设备
4.uiautomator2官方文档
3.3 office自动化处理
我博客总结的一些用法
1.openpyxl库用法
2.win32处理excel
3.win32处理word
4.docx模块处理word
3.4 数据可视化
pyecharts官方文档
3.5 win32操作windows系统
1.史上最强—win32 API函数大全文档
2.python win32api win32gui win32con 简单操作教程
3.如何利用Python和win32编程避免重复性体力劳动(一)
4.python windows软件窗口menu操作 pywin32库
如何入门网络爬虫,摸索一年的心里路程相关推荐
- 快速入门网络爬虫系列 Chapter16 | 爬虫性能提升
Chapter16 | 爬虫性能提升 一.基础简介 1.任务调度 2.线程与进程 2.1.进程 2.2.线程 2.3.线程与进程的联系 2.4.线程与进程的区别 3.多线程 3.1.多线程的原理 3. ...
- 20行python代码入门网络爬虫全流程:使用BeautifulSoup抓取当日人民银行外汇数据
网路爬虫是python最重要的应用之一,甚至有很多地方认为python就是用来做网抓的.这里将用大约20行代码展示一个从人民银行官网抓取当日人民币美元汇率的示例来入门这项技术. 和我们平时手动上网寻找 ...
- python网络爬虫软件哪个好用_好好学Python,入门网络爬虫之精华版!
Python学习网络爬虫主要分3个大的版块:抓取,分析,存储. 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下. 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技 ...
- Python网络爬虫入门
Python网络爬虫入门 网络爬虫(web crawler),也叫网络蜘蛛(Web Spider).网络机器人(Internet Bot).简单地说,抓取万维网(World Wide Web)上所需要 ...
- Python学习网络爬虫--转
原文地址:https://github.com/lining0806/PythonSpiderNotes Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scra ...
- Java网络爬虫该如何学习
文章目录 引言 怎么入门网络爬虫 课程特色 学完本课程能收获什么 引言 互联网以及移动技术的飞速发展,使得全球数据量呈现前所未有的爆炸式增长态势.例如,用户在互联网上的搜索数据.交易数据.评论数据.社 ...
- Python 入门网络爬虫之精华版
Python 入门网络爬虫之精华版 转载 宁哥的小站,总结的不错 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下. 首先列举 ...
- python3.6网络爬虫_python3.6网络爬虫
<精通Python网络爬虫:核心技术.框架与项目实战>--导读 前 言 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引擎中,主要使用通用网络爬虫 ...
- python3.6爬虫库_python3.6 网络爬虫
<精通Python网络爬虫:核心技术.框架与项目实战>--导读 前 言 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引擎中,主要使用通用网络爬虫 ...
最新文章
- 清华唐杰团队造了个“中文AI设计师”,效果比Dall·E好,可在线试玩
- 给你的网站穿上外衣 - HTTPS 免费部署指南
- 【完整代码】Scala akka入门示例
- JavaScript实现动态规划方法计算特定位置的斐波那契数fibonacciNth算法(附完整源码)
- Android开发万能Utils(工具大全)
- Android 3D开发,OpenGL ES 的使用(一)
- EL表达式的作用与限制条件
- 怎么判断日出时间早晚_云南8日游攻略以及费用,从西安到云南旅游怎么安排行程?...
- C# 获得窗体句柄并发送消息(利用windows API可在不同进程中获取)
- signed 与 unsigned 有符号和无符号数
- 如何上传服务器文件大小,如何上传云服务器文件大小
- Office | Office365 离线安装包选择安装word、ppt、excel
- 卸载网易邮箱大师邮件从服务器删除,如何卸载网易邮箱大师 网易邮箱大师卸载教程...
- Lightbox图片展示特效
- vivo手机计算机记录怎么找回,如何从Vivo手机恢复已删除的照片,您将在阅读后知道...
- APT仓库目录和repository目录结构
- 小米路由修改服务器密码,小米路由器3G密码怎么重置? 小米3G路由器修改wifi密码的方法...
- AndroidStudio升级后,离线更新Gradle版本失败问题解决
- c语言实现鼠标驱动,用C语言写的鼠标驱动程序.doc
- PPPOE拨号经常掉线问题
热门文章
- 智慧城市智能化建设发展现状及展望
- 2021年彬州范公中学高考成绩查询,彬州市拟奖励81人名单公布!快看有你认识的吗?...
- 制作一个私有的docker habor仓库
- Linux下开源pcb设计软件,KiCAD更好用的开源免费的原理图、PCB设计软件
- 英语文本处理工具库——spaCy
- Stata:因子变量全攻略-双向固定效应-超越对数生产函数
- 戴尔笔记本电脑的计算机配置在哪,戴尔g3怎么查电脑配置
- seed lab 2020 packet sniffing and spoofing lab
- JavaScript中的静态函数
- 学习笔记:Adaptive Convolutional Kernels