Python爬虫

闲聊(没兴趣的直接进入正题部分):

提到Python,大部分时候都会让人想到人工智能、数据分析、爬虫,之所以它会被认为是这三个方面的优秀代码开发工具,是因为它汇集了全球各行业专家和高级程序员的智慧,为其添加了功能强大的库,而这些库的使用为开发者提供了极好的编程体验,因为你不需要关心底层的技术细节,你只需要你实现你想实现的功能即可,这也是它为什么现在流行的主要原因,因为任何人都可以借助它来完成一些小工具,而对于更高级的应用同样提升了开发效率。

就以我自身感兴趣以及近来学习的东西做一个小小的总结,Python在网络爬虫方面确实还是很容易上手的,代码比之前用C#做的要少了不少,效率也还可以,还有就是它对数据分析,数据可视化的展示结合一些现成的动态图表模板,真是如虎添翼。

说了这么多,好像给人的赶脚就是Python无所不能,几乎可以通吃所有现存编程语言了,非他不学了,这和网上宣传的如出一辙,而事实并非如此,最近两年网上各种宣传各种培训机构以各种诱惑的文字和图形让你不得不信,以个人感觉纯属扯蛋,如果你想通过这个一劳永逸就有点过了,如果是销售了解个皮毛出去和客户聊天还可以,但真要动手做一些东西的时候还是远远不够的,很多细节依然还是需要了解和掌握的,只是很多细节不再需要你来完成而已。这不是打击,是事实,首先学习以一个正确的态度还是蛮重要的,也是能够坚持去完成的条件之一,不了解的情况下期望越大失望越大,在了解情况下理性学习方能循序渐进。

正题:

人工智能太高端,我们学习python就先从稍微基础点的可以解决我们日常工作所需开始吧,数据分析是自己的一个发展方向,爬虫是网络海量数据获取的一个捷径,所以也是从爬虫小程序开始学习的。

因为python对网页信息访问库做的还是蛮强大的,这也就是当你要是用一个python程序直接去访问一个网站,十有八九会被当成爬虫拒之门外的原因。

有人会问了,你这么一下从环境搭建之后就直奔爬虫了,让我这个无基础的小白从何下手啊?莫捉急,我们可以在应用中学习,并非把所有的知识都掌握了才开始造轮船,那不单浪费很大精力,更多时候所学知识没有用起来没有成就感很容易消磨我们持续学习的动力。

至于一些基础的Python语法在百度上自行搜索,有成堆的实例和详细的讲解如果还是遇到不解的问题,请发信息给公众号问我哈😊 (历史文章可以关注公众号之后获取)

至于爬虫这部分,我会分多次完成,对于基础弱的信息量还是蛮大的,不了解的及时查,及时问,我尽可能去解答,但是至少自己得有动手做和思考之后再问,这样既有效率又能节约彼此时间。

 

通过爬取豆瓣电影Top250的基本信息来学习Python是如何从网页中获取所需的信息,后期如何保存到我们的数据库以及后期调用并以表格或图表的方式显示在网页上。

 

爬虫的本质就是通过模拟浏览器打开网页,获取网页中我们想要的部分数据,包括图片,文字信息,表格数据,视频等。

 

搜索引擎的原理也是爬虫,搜索引擎在平时就会启动爬虫,不停地去根据一个连接进入到某个网页,然后再通过分析网页中的超链接进入到另一个网页,把各个网页中的信息或关键字以及网页连接保存到自己的数据库中并建立索引,当用户通过搜索引擎去搜索内容的时候,数据库根据用户搜索的内容和关键字去查询数据库记录,然后排序展示给用户。

 

爬虫学习笔记将分4大块:

  1. 获取数据准备
  2. 爬取网页数据
  3. 解析网页信息
  4. 保存解析后的数据

 

其中各大块也可能会分多次来讲解,特别是到一些关键知识点的时候。

 

  1. 获取数据准备
    1. 基本分析

首先打开网址https://movie.douban.com/top250,在网页的最下面我们可以看到它是将250部电影的信息都分成10个页面来展示了,每个页面展示25个,如下图:

我们尝试点击第2页,会转到第2个页面,并且该页面的第1个电影为第26部电影,同时需要注意到在网址后面增加了?start=25&filter=这样的信息,这个就是第2个网页的地址,这个网址我们分为两部分去看(如下图),第一部分就是我们的主网址,从问号开始的为第二部分,这部分就是主网页的参数,它是以问号起始,通过多个以and符号(&)将参数名称与参数值以等号连接的参数对,例如start的值为25,filter的值为空。

只要参数做相应的调整就可以直接转到相应的网页中,这个也是我们能通过编程进行自定义控制抓取那个网页的信息的主要入口点,也是我们在行动之前去观察一下它的网址的结构从而获得突破口。

通过手动修改该网址,把start的值修改成0,依然可以得到第1页的信息:

所以通过更改URL中的参数信息我们可以请求返回多个页面的信息,然后针对每个页面进行详细信息的抓取就可以将我们所需要的信息保存到预先数据库中。

 

2. 编码规范

  1. 一般Python程序第一行需要加入

# -*- cooding: utf-8 -*- 或者 # coding=utf-8

  1. Python文件中可以加入main函数用于测试程序,确定主程序入口,通过这种新式更能清楚地管理代码执行流程:

              if __name__ == “__main__” :

  1. Python使用#添加注释,说明代码段的作用

引入模块:

模块(module):用来从逻辑上组织Python代码(变量、函数、类),本质就是py文件,提高代码的可维护性。Python使用import来导入模块,如:

import sys

from bs4 import BeautifulSoup

import re

import urllib

import xlwt

这些库就是别人写好的一些源代码,你只需要引用即可,具体的用法接下来会有,如果想进一步了解,可以在百度上搜相关库的名称,有很多的介绍资料。

 

引入模块的方式

  1. 引入自定义模块:

我们在test1文件夹下创建了一个t1.py的文件,且该文件内容如下:

       def add(a,b):

              return a+b;

然后在test2文件夹下新建一个t2.py的文件,然后在该文件中输入如下代码:

       from test1 import t1

       print(t1.add(3,5))

这样就直接可以在t2文件中直接调用外部的程序代码,其中from后面就是包名称(文件夹就是一个包),t1文件就是这个包的一个模块。

 

  1. 引入系统模块:

import sys

import os

 

     2. 引入第三方模块:

import re

 

  1. 安装模块

BeautifulSoup是一个网页解析器,可以将复杂的HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

  1. Tag 标签及其内容

例如截图中的script,div,ol,li,link这些都是标签,很多都是成对出现的,成对标签之间的内容就是用来展示的信息以及效果,有的还有标签属性信息。

  1. NavigableString   标签里的内容(字符串)
  2. BeautifulSoup     html文档
  3. Comment        一个特殊的NavigableString,是文档中的注释部分,如下红框框出的部分,但是输出的内容不包含注释符号,即:输出为“新闻”:

 

在Python环境中,选择“包”页面,然后在搜索框中输入bs4,点击“运行命令:pip install bs4”

 

当安装完成之后会在“输出”框中会出现“已经成功安装bs4”字样,如上图所示。

同样在“解决方案资源管理器”里可以看到已经添加两个包,分别是bs4和beautifulsoup4。

 

然后在代码文件中进行包引入:

注:后续的包安装将不再进行详细叙述,所有包的安装和上面的安装过程一致。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值