编程对于任何一个新手来说都不是一件容易的事情,Python对于任何一个想学习的编程的人来说的确是一个福音,阅读Python代码像是在阅读文章,源于Python语言提供了非常优雅的语法,被称为最优雅的语言之一。

python入门时

用得最多的还是各类爬虫脚本,

写过抓代理本机验证的脚本、写过论坛中自动登录自动发贴的脚本

写过自动收邮件的脚本、写过简单的验证码识别的脚本。

这些脚本有一个共性,都是和web相关的,

总要用到获取链接的一些方法,故累积了不少爬虫抓站的经验,

在此总结一下,那么以后做东西也就不用重复劳动了。

1、基本抓取网页

get方法

post方法

2.使用代理服务器

这在某些情况下比较有用,

比如IP被封了,或者比如IP访问的次数受到限制等等。

3.Cookies处理

是的没错,如果想同时用代理和cookie,

那就加入proxy_support然后operner改为 ,如下:

4.伪装成浏览器访问

某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。

这时候我们需要伪装成浏览器,

这可以通过修改http包中的header来实现:

5、页面解析

对于页面解析最强大的当然是正则表达式,

这个对于不同网站不同的使用者都不一样,就不用过多的说明。

其次就是解析库了,常用的有两个lxml和BeautifulSoup。

对于这两个库,我的评价是,

都是HTML/XML的处理库,Beautifulsoup纯python实现,效率低,

但是功能实用,比如能用通过结果搜索获得某个HTML节点的源码;

lxmlC语言编码,高效,支持Xpath。

6.验证码的处理

碰到验证码咋办?

这里分两种情况处理:

google那种验证码,没办法。

简单的验证码:字符个数有限,只使用了简单的平移或旋转加噪音而没有扭曲的,

这种还是有可能可以处理的,一般思路是旋转的转回来,噪音去掉,

然后划分单个字符,划分好了以后再通过特征提取的方法(例如PCA)降维并生成特征库,

然后把验证码和特征库进行比较。

这个比较复杂,这里就不展开了,

具体做法请弄本相关教科书好好研究一下。

7. gzip/deflate支持

现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,

以VeryCD的主页为例,未压缩版本247K,压缩了以后45K,为原来的1/5。

这就意味着抓取速度会快5倍。

然而python的urllib/urllib2默认都不支持压缩

要返回压缩格式,必须在request的header里面写明’accept-encoding’,

然后读取response后更要检查header查看是否有’content-encoding’一项来判断是否需要解码,很繁琐琐碎。

如何让urllib2自动支持gzip, defalte呢?

其实可以继承BaseHanlder类,

然后build_opener的方式来处理:

8、多线程并发抓取

单线程太慢的话,就需要多线程了,

这里给个简单的线程池模板 这个程序只是简单地打印了1-10,

但是可以看出是并发的。

虽然说Python的多线程很鸡肋

但是对于爬虫这种网络频繁型,

还是能一定程度提高效率的。

9. 总结

阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于解决问题而不是去搞明白语言本身。

Python虽然是基于C语言编写,但是摒弃了C中复杂的指针,使其变得简明易学。

并且作为开源软件,Python允许对代码进行阅读,拷贝甚至改进。

这些性能成就了Python的高效率,有“人生苦短,我用Python”之说,是一种十分精彩又强大的语言。

总而言之,开始学Python一定要注意这4点:

1.代码规范,这本身就是一个非常好的习惯,如果开始不养好好的代码规划,以后会很痛苦。

2.多动手,少看书,很多人学Python就一味的看书,这不是学数学物理,你看例题可能就会了,学习Python主要是学习编程思想。

3.勤练习,学完新的知识点,一定要记得如何去应用,不然学完就会忘,学我们这行主要都是实际操作。

4.学习要有效率,如果自己都觉得效率非常低,那就停不停,找一下原因,去问问过来人这是为什么。

推荐阅读:

零基础入门Python的最详细的源码教程

2019年Python爬虫学习路线图完整版

Python为何能坐稳AI人工智能的头牌语言

Python崛起,TIOBE编程语言排行榜再创新高!

Python爬虫入门,常用爬虫技巧盘点相关推荐

  1. Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助. 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步 ...

  2. python3 [爬虫入门实战]爬虫之scrapy安装与配置教程

    python3 [爬虫入门实战]爬虫之scrapy安装与配置教程 标签: python爬虫scrapy 2017-07-08 15:38 77人阅读 评论(0) 收藏 举报 分类: python3爬虫 ...

  3. python从入门到爬虫_python爬虫从入门到放弃(一)之初识爬虫

    什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  4. python xpath入门_python爬虫入门实战(三)!xpath 和 csv!

    最近有小伙伴说正则表达式学不懂?那有什么替代方案呢?一起往下看吧! 在前两篇文章我们已经学了一些基本技巧.但是之前都是用正则表达式来解析内容的,可能有小伙伴对正则表达式不理解,于是乎,我找到一个相对好 ...

  5. python 爬虫《百炼成佛》爬虫入门 (爬虫介绍)第一个爬虫程序

    爬虫<百炼成佛> 爬虫是什么? 爬虫:通过编写程序来获取到互联网上的资源百度 爬虫:通过编写程序来获取到互联网上的资源百度 需求:用程序模拟浏览器.输入一个网址.从该网址中获取到资源或者内 ...

  6. Python 从入门到爬虫极简教程 1

    Python 爬虫与数据分析 你学的太多,练习太少. -- 古典 抓取数据但不用 Python 不编码是第一选择 八爪鱼采集器 Octoparse 特点: 内嵌浏览器, 可视化定位, 可提取 Java ...

  7. python爬虫都需要什么手续_Python爬虫入门 | 3 爬虫必备Python知识

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  8. Python 从入门到爬虫极简教程

    为什么要学 Python 数据分析需要多个阶段, 抓取数据仅是一个环节, 数据需要不断采集, 更新, 清洗, 分析, 可视会展示等多个阶段, 这些过程中 Python 都能应对自如. 属于性阶适中的工 ...

  9. 20行python代码入门网络爬虫全流程:使用BeautifulSoup抓取当日人民银行外汇数据

    网路爬虫是python最重要的应用之一,甚至有很多地方认为python就是用来做网抓的.这里将用大约20行代码展示一个从人民银行官网抓取当日人民币美元汇率的示例来入门这项技术. 和我们平时手动上网寻找 ...

  10. 用python爬虫的基本步骤-Python爬虫入门:爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

最新文章

  1. 遍历datatable的方法
  2. IE11 F12 开发人员工具 查看 Cookie
  3. 嵌入式linux root免密码,给嵌入式linux串口添加密码的一些总结
  4. 计算天数java_Java,计算两个日期之间的天数
  5. asp.net导出GridView数据到Excel
  6. 生成n对括号的合法全排列
  7. 【今日CV 计算机视觉论文速览】Mon, 25 Mar 2019
  8. linux中权限的介绍,Linux文件权限的入门介绍
  9. IIS错误信息--另一个程序正在使用此文件,进程无法访问!
  10. 【跃迁之路】【456天】程序员高效学习方法论探索系列(实验阶段213-2018.05.07)...
  11. 不同框架接口自动化的优劣
  12. 只会纯硬件,让我有点慌
  13. java实现输入数字 输出金额_JAVA实现数字大写金额转换的方法
  14. chapter2:正则表达式、文本标准化和编辑距离
  15. keil MDK cannot access target,shutting down debug session的解决办法
  16. Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning(DS——NER识别(减少人工参与))
  17. C++中using的三种用法
  18. !-- --与%-- --%
  19. 英寸和厘米的交互python_matplotlib 设置图形大小时 figsize 与 dpi 的关系
  20. NiFi分享第一期-安全认证(证书认证)

热门文章

  1. 最新版citespace软件的安装与配置
  2. 开源分布式量化交易系统——回测系统(一)
  3. Unity基础笔记(2)—— Unity2D及输入系统
  4. 《论文阅读》RoBERTa: A Robustly Optimized BERT Pretraining Approach
  5. oracle连接 ORA-27102: out of memory
  6. 量化私募投资百亿头部量化私募企业在招岗位:《量化研究员》21/22/23届,校招/秋招/社招都看年base40-100万+bonus
  7. 计算机英语专业的结合,工学结合模式下的高职计算机专业英语教学探索
  8. Revit二次开发加载RevitLookup.dll程序集
  9. 项目管理的三大设计要素
  10. Ubuntu16.04切换系统内核