更多课程 选择中心


Python培训

400-996-5531

Python网络爬虫介绍&使用了解

  • 发布:MikeChen
  • 来源:Python编程与框架学习
  • 时间:2018-01-31 11:51

今天我们正式开始Python网络爬虫知识分享,今天主要分享的是,对于网络爬虫的介绍,以及对网络的使用了解

一:数据获取方式

1. 企业生产的用户数据:大型互联网公司有海量用户,所以他们积累数据有天然的优势。有数据意识的中小型企业,也开始积累的数据。

2. 数据管理咨询公司:通常这样的公司有很庞大的数据采集团队,一般会通过市场调研、问卷调查、固定的样本检测,和各行各业的公司进行合作、专家对话(数据积累很多年了,最后得出科研结果)来采集数据。

3. 政府/机构提供的公开数据:政府通过各地政府统计上报的数据进行合并;机构都是权威的第三方网站。

4. 第三方数据平台购买数据:通过各个数据交易平台来购买各行各业需要的数据,根据获取难度不同,价格也会不同。

5. 爬虫爬取数据:如果市场上没有我们需要的数据,或者价格太高不愿意买,那么就可以招/做一个爬虫工程师,从互联网上定向采集数据。

二:什么事爬虫

抓去网页数据的程序

三:爬虫怎么抓去数据

网页三大特征:

-1. 网页都有自己唯一的URL(统一资源定位符)来进行定位

-2. 网页都使用HTML (超文本标记语言)来描述页面信息。

-3. 网页都使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据

爬虫的设计思路:

-1. 首先确定需要爬取的网页URL地址。

-2. 通过HTTP/HTTP协议来获取对应的HTML页面。

-3. 提取HTML页面里有用的数据:

a. 如果是需要的数据,就保存起来。

b. 如果是页面里的其他URL,那就继续执行第二步。

四:为什么选择Python做爬虫

可以做爬虫的语言有很多,如 PHP、Java、C/C++、Python等等...

- PHP 虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程、异步支持不够好,并发处理能力很弱。爬虫是工具性程序,对速度和效率要求比较高。

- Java 的网络爬虫生态圈也很完善,是Python爬虫最大的对手。但是Java语言本身很笨重,代码量很大。重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。

- C/C++ 运行效率和性能几乎最强,但是学习成本很高,代码成型比较慢。能用C/C++做爬虫,只能说是能力的表现,但是不是正确的选择。

- Python 语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。还有强大的爬虫Scrapy,以及成熟高效的 scrapy-redis分布式策略。而且,调用其他借口也非常方便(胶水语言)

五:课程介绍

-1. Python的基本语法知识(可在本公众号入门中学习~)

-2. 如何抓取HTML页面:

HTTP请求的处理,urllib、urllib2、requests

处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件

-3. 解析服务器响应的内容

re、xpath、BeautifulSoup4(bs4)、jsonpath、pyquery等

使用某种描述性一样来给我们需要提取的数据定义一个匹配规则,

符合这个规则的数据就会被匹配。

-4. 如何采集动态HTML、验证码的处理

通用的动态页面采集:Selenium + PhantomJS(无界面):模拟真实浏览器加 载js、ajax等非静态页面数据

Tesseract:机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的 验证码可以通过手动输入/专门的打码平台

-5 Scrapy框架:(Scrapy,Pyspider)

高定制性高性能(异步网络框架twisted),所以数据下载速度非常快,提供了数据存储、数据下载、提取规则等组件。

-6 分布式策略 scrapy-reids:

scrapy-redis,在Scrapy的基础上添加了一套以 Redis 数据库为核心的组件。

让Scrapy框架支持分布式的功能,主要在Redis里做 请求指纹去重、请求分配、数据临时存储。

-7 爬虫 - 反爬虫 - 反反爬虫 之间的斗争:

其实爬虫做到最后,最头疼的不是复杂的页面,也是晦涩的数据,而是网站另一边的反爬虫人员。

User-Agent、代理、验证码、动态数据加载、加密数据。

数据价值,是否值的去费劲做反爬虫。

1. 机器成本 + 人力成本 > 数据价值,就不反了,一般做到封IP就结束了。

2. 面子的战争....

爬虫和反爬虫之间的斗争,最后一定是爬虫获胜!

为什么?

只要是真实用户可以浏览的网页数据,爬虫就一定能爬下来!

本文内容转载自网络,本着传播与分享的原则,来源/作者信息已在文章顶部表明,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python微信跳一跳辅助原理解析
下一篇:10分钟学会 Python 函数基础知识

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省