1小时入门 Python 爬虫

前言

随着网络技术的发展,数据越来越变的值钱,诸多公司都在探究如何获取更多更有用的数据。万维网是大量信息的载体,如何有效提取这些有效且公开的数据并利用这些信息变成了一个巨大的挑战。

从而爬虫工程师、数据分析师、大数据工程师的岗位也越来越受欢迎。爬虫则是 Python 的一个应用领域,Python 还有诸多应用领域,如 Web 全栈开发、图形界面开发、大数据、人工智能、系统网络运维、云计算系统管理……

Python 基础知识学习途径

学习好 Python 基础对于学习 Python 爬虫具有事半功倍的效果。就像生活中的学英语一样,一个对英语一概不通的人听完别人读英语,自己也能读出来,但是要把英语读好,好好学习音标是非常有必要的。

然而 Python 的基础知识如果要系统学习,内容也较多,那么我们到底需要学习到什么程度,对于学习 Python 爬虫才是足够的呢?这里,我对学习爬虫需要掌握的 Python 基础知识进行了筛选,过滤掉了一些不必要的知识。为您提供了如下学习链接:

Python 开发环境的搭建

Python 目前流行版本两个 Python 2.x 与 Python 3.x,由于 Python 2 只会维护到2020年,因此这里建议使用 python 3 来作为我们的编程环境。

1.下载Python。

进入下载页面(https://www.python.org/downloads/release/python-362/)下载 Python3.6.2 版本即可。

提示:根据你的电脑选择,32位还是64位的安装包。

安装过程中只需要默认安装即可。安装完成后在 cmd 命令行输入 python,然后回车,如果成功进入 python 并返回 python 的版本信息,则证明 Python 环境安装成功(这里我将 Python.exe 改为了 Python3.exe)。如下图所示。

什么是爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更常被称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,从中获取大量的信息。

爬虫的作用主要有以下几点:

  • 市场分析:电商分析、商圈分析、一二级市场分析等;
  • 市场监控:电商、新闻、房源监控、票房预测、股票分析等;
  • 商机发现:招投标情报发现、客户资料发掘、企业客户发现等;
  • 数据分析:对某个 App 的下载量跟踪、用户分析、评论分析,虚拟货币详情分析……

爬虫基础知识补充

在开始学习爬虫知识之前,你需要了解一些网页的基本知识:

  • 网址的构成
  • 网页的基本构成
  • 常见的加载模式
  • 网页的请求过程
  • 谷歌浏览器之 HTTP 请求分析

1.网址的构成

网站的网址一般由协议+域名+加页面构成,如 https://auction.jd.com/home.html,域名一般是固定的不会改变,能改变的则是页面(home.html),所以在爬虫的过程中我们所需要解析的就是自己编写的不同页面的URL,只有解析出各个不同页面的 URL 入口,我们才能开始爬虫(爬取网页)。

2.网页的基本构成

一般来说一个网页的页面主要有 HTML、CSS、JavaScript 构成,这里我们可以打开任意一个网页右击查看网页源代码。

  • HTML:是用来制作网页,简单来说就是编写网页结构。
  • CSS:美化网页(样式);
  • JavaScript: 实现网页与客户之间互动的桥梁,让网页具有丰富的生命力。

3.常见的加载模式

学习爬虫有必要了解网页常见的两种加载模式(后续爬虫过程中,经常需要用到)。

  • 同步加载:改变网址上的某些参数会导致网页发生改变。如常见的网站翻页后网址会发生变化。
  • 异步加载:改变网址上的参数不会使网页发生改变。如常见的网站翻页后网址不会发生变化。

4.网页的请求过程

打开浏览器,地址栏输 baidu.com,按下回车,到用户看到内容,主要经历了如下步骤:

(1)开始进行域名解析。

首先浏览器自身搜 DNS 缓存,搜 baidu.com 有没有缓存有没有过期,如果过期就结束,其次浏览器会搜索操作系统自身的 DNS 缓存并读取本地的 host 文件,浏览器发起一个 DNS 系统调用。

(2)浏览器获得 baidu.com 域名对应的 IP 地址后,发起 HTTP 三次握手。

(3)建立 TCP/IP,浏览器就可以向服务器发送 HTTP 请求。

TCP/IP 链接建立起来后,浏览器就可以向服务器发送 HTTP 请求。服务器接收到请求之后就会对请求做相应的处理,并将结果返回给浏览器。

(4)浏览器拿到资源之后对页面进行加载、解析、渲染,最后呈现给用户。

5.谷歌浏览器之 HTTP 请求分析

打开 Chrome 开发工具(这里我们以打开百度网址为例),如下图:

  • Elements(元素面板):使用“元素”面板可以通过自由操纵 DOM 和 CSS 来重演您网站的布局和设计。
  • Console(控制台面板):在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell,在页面上与 JavaScript 交互。
  • Sources(源代码面板):在源代码面板中设置断点来调试 JavaScript ,或者通过 Workspaces(工作区)连接本地文件来使用开发者工具的实时编辑器。
  • Network(网络面板):从发起网页页面请求 Request 后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),并可以根据这个进行网络性能优化。

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2018-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

TBS三方SDK自动化探索

对于非宿主的合作伙伴来说,在TBS接入环节,“共享和下载内核”的能力是最重要的,它从根本上决定着APP是否能够使用预期的X5内核提供服务。一旦出现问题,会导致无...

3930
来自专栏极乐技术社区

从零开始:微信小程序新手入门宝典

为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通...

4125
来自专栏jiajia_deng

查看视音频格式工具 MediaInfo

1534
来自专栏Thinks

你的第一个渐进式网站应用(1)

渐进式网站应用程序是结合网站和应用程序中最好的体验。它们对于用户来说从浏览器标签中第一次访问,不需要安装是非常有用的。随着用户逐渐建立与应用程序的关系,它变得越...

961
来自专栏CSDN技术头条

如何处理变慢的API?

在开始时表现良好的API会随着时间的推移而导致性能降低。学习如何管理和解决这些性能问题是开发者必须具备的技能之一。 作为一名工程师,你花了很多时间在API上——...

2227
来自专栏WeTest质量开放平台团队的专栏

微信小程序之提高应用速度小技巧

小程序科普类的文章已经很多了,今天这里讲的是针对小程序的优化方法,可以有效提高小程序的响应速度和用户体验。当然,开发体验也提高不少。

2102
来自专栏Python小屋

Python+selenium+PhantomJS获取百度搜索结果真实链接地址

祝愿所有参加高考的孩子们都能超水平发挥,考出好成绩,考上理想的学校!也希望你们考上大学之后仍然保持高考前的学习劲头!

2383
来自专栏顶级程序员

微软发布 Windows 命令行参考文档,涵盖超 250 项控制台命令

长久以来,许多人一直对各个版本的 Windows 控制台命令行不是很了解,更别提如何去使用了。显然,这件事主要归咎于文档的缺乏。

1183
来自专栏*坤的Blog

IntelliJ Idea 免费激活方法

1.5K2
来自专栏杨建荣的学习笔记

压测工具swingbench和sysbench对比(r12笔记第13天)

今天来说说两款压测工具sysbench,swingbench,早些时候傻傻分不清楚,其实两个差别大了去了。 swingbench 先来说说swingb...

4059

扫码关注云+社区

领取腾讯云代金券