python爬虫之简介以及前期准备
来源:互联网 发布:算法设计和分析 编辑:程序博客网 时间:2024/05/21 17:03
对于学完python基础然后想找点项目练手的人,爬虫可以说是很不错的方向之一。那么爬虫究竟是做什么用的呢?又要怎么用呢?哈哈,kyda最近正好在学,那么就写一个系列的文章出来吧。顺便记录我的学习历程。
一.爬虫的作用
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常被称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,已被广泛应用于互联网领域。搜索引擎使用网络爬虫抓取Web网页、文档甚至图片、音频、视频等资源,通过相应的索引技术组织这些信息,提供给搜索用户进行查询。网络爬虫也为中小站点的推广提供了有效的途径。
说白了就是如果我们想要一个网页中的特定内容,比如网页中的所有图片。这时如果我们利用复制粘贴的方式去获取的话就会消耗我们大量的精力。于是,爬虫就派上用场了。
我们拿糗事百科来举例子。
上面是糗事百科的主页,如果段友有一天想把上面所有的段子截取下来,制作成文本。可是,糗事百科的段子那么多,一段段的去复制粘贴简直就是噩梦。那么我们可以自己写一个“机器人”帮我们完成这一些操作。这个机器人就是所谓的爬虫。
有人说爬取这些信息并没多大用处,那么我告诉你错了,我举上面糗事百科的例子只是为了方便说明,以及入门示例而已。爬虫的重要性体现在哪呢?这几年可以说的大数据时代的来临。数据的作用很重要。比如奥巴马团队就曾运用大数据分析出哪个洲对他更有力,然后就去那个洲做演讲,帮助他赢得了连任的机会。当然我们还可以利用数据分析出一个用户的偏好,然后推荐一些特定产品给他,这就是淘宝的智能推荐原理。那么对于蕴含大量数据的互联网,爬虫可以帮助我们获取做这些数据。
二.前期准备
在开始我们爬虫之旅之前,我们需要做以下准备。
1.python基础,这个不用多说。
两个打基础连接:python菜鸟教程 或者 廖雪峰python,这两个结合着看,多敲代码。
2.urllib:这个是基础库,python自带,我们后面文章会讲到
3.requests: 这个需要安装 ,windows下 pip install requests
这里我要重点介绍一下requests的作者,是python大牛,也是一个励志男神。都说程序员就是一届屌丝,那可不一定。requests作者Kenneth Reitz会告诉你错了。程序员文艺起来简直是叫人怀疑人生。不过他也有黑历史,比如胖。不过他减肥成功了。
贴下他的照片:
好了,关于他我就不多说了。有兴趣自己去百度下。
4.http协议:可以看我另外一篇博文,HTTP详解(转)
5.浏览器:Chrome 或者 Firefox,其他浏览器我真的不喜欢,不够简洁
6.正则表达式:用于选取我们需要的信息。这个最好还是去学一下,后面我会用到的。
链接:正则表达式30分钟入门教程
7.xpath:一样是用于选取我们需要的信息。
不用太深入,了解一下也好,我后面文章会介绍下,可以去这个了解下:xpath入门
三.示例
说了那么多展现一下效果吧。
爬取页面如下:
所用代码:
import requestsfrom lxml import htmlURL = 'https://www.qiushibaike.com/'sess = requests.session()page = sess.get(URL)tree = html.fromstring(page.text)#选出包含段子的部分total_content = tree.xpath('//div[@id="content-left"]/div/a[1]/div/span')content = []for show in total_content: result = show.text r = result.replace('\n', '') print(r)
结果:
这就是我们爬去下来的段子,细心的同学就会发现有些段子并不完整。而有些段子明显是要配图片的。
比如第四行:“想想还真是!!”在网页中是:
而爬虫只获取了文字,这样的段子对于我们来说是无用的。
那么我们该如何筛选只含有文字的段子,或者将有图片的段子的图片下载下来呢?
这里就留个疑问,有兴趣的可以思考,我后续的文章也会来解决这个问题。
好了,觉得我写的不错的可以加我微信公众号,我的文章也会同步到公众号:
- python爬虫之简介以及前期准备
- 【selenium 2.0 python 自动化测试】简介及前期准备
- 【软件工程】 之 前期准备
- python数据分析之(1)前期入门准备
- Python实现爬虫统计学校BBS男女比例(一)前期准备、方案分析
- python实现爬虫统计学校BBS男女比例(一)前期准备、方案分析
- Python数据挖掘的一些前期准备
- python爬虫准备
- Python爬虫准备
- 前期准备
- 前期准备
- 前期准备
- 【2015.逃离华为之找工作前期准备】
- Hadoop之——前期准备篇
- python之正则表达式以及网络爬虫
- Python开发Kettle做大数据ETL(前期准备)
- 前期准备之ubuntu10.10下安装skyeye
- 实战版网站推广系列之:推广前期的准备
- 笔记
- this与super关键字
- POJ3253---切木板(优先队列,贪心)
- [状态压缩DP] POJ 3254
- 【树莓派】树莓派内安装Ubuntu
- python爬虫之简介以及前期准备
- boost 多线程
- 指针和多维数组
- redis中的几种数据结构(曾经面试的时候问到的问题)
- CSS了解
- 1.9 字符三角形
- NYOJ D : 我不喊麦,我叫MC李白
- boost库----enable_shared_from_this类的作用和实现原理
- 多维数组排序