如何开始写你的第一个爬虫脚本——简单爬虫入门!

好多朋友在入门python的时候都是以爬虫入手,而网络爬虫是近几年比较流行的概念,特别是在大数据分析热门起来以后,学习网络爬虫的人越来越多,哦对,现在叫数据挖掘了!

其实,一般的爬虫具有为2个功能:取数据和存数据!好像说了句废话。。。

而从这2个功能拓展,需要的知识就很多了:请求数据、反爬处理、页面解析、内容匹配、绕过验证码、保持登录以及数据库等等相关知识,今天我们就来说说做一个简单的爬虫,一般需要的步骤!

存数据

先说存数据,是因为在初期学习的时候,接触的少,也不需要太过于关注,随着学习的慢慢深入,我们需要保存大批量的数据的时候,就需要去学习数据库的相关知识了!这个我们随后开篇单独说明。

初期,我们抓到需要的内容后,只需要保存到本地,无非保存到文档、表格(excel)等等几个方法,这里大家只需要掌握with语句就基本可以保证需求了。大概是这样的:

with open(路径以及文件名,保存模式) as  f:

    f.write(数据)#如果是文本可直接写入,如果是其他文件,数据为二进制模式更好

当然保存到excel表格或者word文档需要用到 xlwt库(excel)、python-docx库(word),这个在网上很多,大家可以自行去学习。

取数据

啰嗦那么多,终于到正题,怎么来抓取我们想要的数据呢?我们一步步的来!

一般所谓的取网页内容,指的是通过Python脚本实现访问某个URL地址(请求数据),然后获得其所返回的内容(HTML源码,Json格式的字符串等)。然后通过解析规则(页面解析),分析出我们需要的数据并取(内容匹配)出来。

在python中实现爬虫非常方便,有大量的库可以满足我们的需求,比如先用requests库取一个url(网页)的源码

import  requests#导入库

url = '你的目标网址'

response = requests.get(url)#请求数据

print(response.text)#打印出数据的文本内容

这几行代码就可以获得网页的源代码,但是有时候这里面会有乱码,为什么呢?

因为中文网站中包含中文,而终端不支持gbk编码,所以我们在打印时需要把中文从gbk格式转为终端支持的编码,一般为utf-8编码。

所有我们在打印response之前,需要对它进行编码的指定(我们可以直接指定代码显示的编码格式为网页本身的编码格式,比如utf-8,网页编码格式一般都在源代码中的<meta>标签下的charset属性中指定)。加上一行即可

response.encode = 'utf-8'#指定编码格式

至此,我们已经获取了网页的源代码,接下来就是在乱七八糟的源代码中找到我们需要的内容,这里就需要用到各种匹配方式了,常用的几种方式有:正则表达式(re库),bs4(Beautifulsoup4库),xpath(lxml库)!

建议大家从正则开始学习,最后一定要看看xpath,这个在爬虫框架scrapy中用的很多!

通过各种匹配方式找到我们的内容后(注意:一般匹配出来的是列表),就到了上面所说的存数据的阶段了,这就是一个简单的爬虫的过程!

当然了,在我们具体写代码的时候,会发现很多上面没有说到的内容,比如

获取源代码的时候遇到反爬,根本获取不到数据

有的网站需要登录后才可以拿到内容

遇到验证码

获取到内容后写入文件出错

怎样来设计循环,获取大批量的内容甚至整站爬虫

等等,这些我们慢慢来研究!

python学习群:542110741

总之,学习本身是一个漫长的过程,我们需要不断的练习来增强我们的学习兴趣,以及学到更扎实的知识!大家加油!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,936评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 1 有一次,一个小群有人在招幕每天写一句开心的话,我一听很好玩,正合我意,这也是我所喜欢的,毫不犹豫加入群。 大家...
    码字好玩儿阅读 405评论 2 1
  • 背景说明 朋友们,青山出现了。大家可能好奇这些日子去哪里了,怎么在网上没有了音信。首先给大家道个歉,原谅我的不辞而...
    月青山阅读 299评论 0 1
  • 2007-04-24 10:49:02诗意地理解生活,理解我们周围的一切--是我们从童年时代得到的最可贵的礼物。要...
    逸之飘520阅读 438评论 0 0