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 条评论
登录 后参与评论

相关文章

来自专栏开源项目

码云推荐 | tabris.js + restify + 码云打造个人 APP

前言: 从9月初开始到现在,我一直在寻找一个适合自己的,可以跨平台的开发APP的js框架。 虽然之前自己也有陆续接触过Weex,React Native,F...

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

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

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

3809
来自专栏程序员互动联盟

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

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

34012
来自专栏社区的朋友们

漫谈分布式集群的负载均衡—口水篇

为了理解分布式集群这个概念,我们先说说这两个概念:“集群”和“分布式”。艺术来源于生活,计算机科学亦是如此。

1.1K0
来自专栏james大数据架构

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

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

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

我是如何一步步攻破一家互联网公司的

最近在研究Web安全相关的知识,特别是SQL注入类的相关知识。接触了一些与SQL注入相关的工具。周末在家闲着无聊,想把平时学的东东结合起来攻击一下身边某个小伙伴...

1012
来自专栏CSDN技术头条

如何处理变慢的API?

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

2107
来自专栏即时通讯技术

了解iOS消息推送一文就够:史上最全iOS Push技术详解

1)在线Push:比如QQ、微信等IM界面处于前台时,聊天消息和指令都会通过IM自建的网络长连接通道推送过来,这种Push在本文中暂且称为“在线Push”;

2573
来自专栏知晓程序

小程序的 AppID 怎么找 / 小程序手势缩放怎么做 / 不费流量的小程序推荐 | 小程序问答 #13

每次,看到那些名字长得让人记不住的小程序,你内心是否都会暗暗吐槽:起名的人究竟是怎么想的。

911
来自专栏aCloudDeveloper

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

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

2943

扫码关注云+社区