Python爬虫很难,那是你没有掌握爬虫的思想,看看年薪百万的大神如何来分析

大家学习Python爬虫可能会遇到各种各样的问题,那么在遇到这些问题的时候,我们应该如何去解决呢?

我们大神们通常有一种解决思路(或者说是流程),如果你看到有些大神直接跳过了这些流程,是因为它一眼就能够分析出这一步需不需要(也就是说,其实他还是思考过这一个步骤的,只是思考之后迅速排出了而已。)

作为普通人的我们,那就需要去一步一步的按规矩来分析,排除,等你能够一眼排除的时候,你或许也就离大神不远了。

1.什么是爬虫

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

比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。

2.浏览网页的过程

在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://novel.tanzhouvip.com/ ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。

因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。

3.URL的含义

URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL的格式由三部分组成:

①第一部分是协议(或称为服务方式)。

http:// https:// ftp:// file://

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

127.0.0.1 www.tanzhouedu.com

baidu.tk

顶级域名,一级域名,根域名:除了后缀以外只有一个点号

www.baidu.com 二级域名

com baidu.com cn baidu.cn shanfeng.club

com.cn org.cn

baidu.com.cn

顶级域名baidu.com baidu.com.cn

二级域名www.baidu.com mp3.baidu.com

三级域名a.b.baidu.com

③第三部分是主机资源的具体地址,如目录和文件名等。

爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。

4. 环境的配置

学习Python,当然少不了环境的配置,该课程使用的Python版本为Python2.7.9,开发工具为pycharm

5.爬虫的重要思想

1,理论上来讲只要是网页上面能够看到的数据都是可以爬取的(因为所有看到的网页上的数据都是由服务器发送到我们电脑上面的,只是有的数据加密过,很难解密)

2,在网页上无法看到或者无法获取的数据,爬虫同样不可能拿到,比如一些付费资料

3,分析页面数据的原则是从简到繁,从易到难

1)直接通过网页源代码获取

2)分析是否为ajax异步加载

3)数据是否被加密 js

作者:Python雁横

大家可能在学习Python或者学习爬虫的时候遇到这样或那样的问题,没有人可以一起讨论,百度搜索过时了,博客也就那么几个,小编也组建了一个自己的群,希望能够提供大家一个比较好的学习环境,能够帮助到大家的学习。

原文发布于微信公众号 - Python雁横(py_0123)

原文发表时间:2018-04-02

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

【专业技术第四讲】如何检测浏览器的快慢?

现在做浏览器的大概有下面几个方向吧 1. 从事浏览器外壳的工作,开发基于浏览器的各种应用和扩展; 2. 做浏览器内核优化的,大概又分为几个部分: a. 渲染模块...

353120
来自专栏美丽应用

让七彩虹(ColorFly)C3可被Linux设备识别

16160
来自专栏沈唁志

PHP程序猿必知:PHP网站应该怎么做优化

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

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

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

43490
来自专栏james大数据架构

零代码如何打造自己的实时监控预警系统

概要 为什么要做监控 线上发布了服务,怎么知道它一切正常,比如发布5台服务器,如何直观了解是否有请求进来,访问一切正常。 当年有一次将线上的库配置到了Beta,...

79460
来自专栏FreeBuf

iOS最新漏洞可实现“以假乱真”的iCloud密码钓鱼

近日安全研究人员发布了一份漏洞利用代码。这份代码表明,攻击者可以通过足以以假乱真的钓鱼,轻易窃取使用最新iOS版本的iCloud密码。 漏洞原理 这个概念验证性...

22080
来自专栏JAVA高级架构

微服务架构选型实践

背景 随着公司一年多的成长,我们已经开发了数十个项目了,后台有 JAVA 的有 PHP 的,为了更好地提升开发与管理效率,各技术大牛小牛们时常进行激烈的 PK,...

56360
来自专栏用户2442861的专栏

关于图片或者文件在数据库的存储方式归纳

http://www.cnblogs.com/wangtao_20/p/3440570.html

93610
来自专栏CSDN技术头条

如何处理变慢的API?

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

24570
来自专栏aCloudDeveloper

用户空间网络提升 NFV 的性能

本文是一篇翻译,翻译自https://software.intel.com/en-us/blogs/2015/06/12/user-space-network...

32430

扫码关注云+社区

领取腾讯云代金券