好多朋友在入门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,网页编码格式一般都在源代码中的标签下的charset属性中指定)。加上一行即可response.encode = 'utf-8'#指定编码格式

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

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

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

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

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

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

遇到验证码

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

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

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

python学习群:542110741

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

python爬虫入门代码-如何开始写你的第一个爬虫脚本——简单爬虫入门!相关推荐

  1. python函数增强代码可读性_写Python必须知道的这几个代码技巧!你会吗?

    Day09 函数的初始 函数:函数是以功能为导向,一个函数封装一个功能.登录,注册,文件的改的操作... 函数减少代码的重复性,增强了代码的可读性: 获取任意一个字符串的元素的个数 s1 = &quo ...

  2. python ipdb 调试代码

    python ipdb 调试代码 安装 pip install ipdb 使用 第一种方法 python -m ipdb xxx.py #单步调试 也可以写一个.py文件,如下,来执行. import ...

  3. 实现一个go语言的简单爬虫来爬取CSDN博文(一)

    http://blog.csdn.net/tyBaoErGe/article/details/50375802?hmsr=studygolang.com&utm_medium=studygol ...

  4. python爬虫入门代码-Python爬虫入门

    原标题:python爬虫入门 基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议,而爬虫可以看作是一个另类的客户端,它把自己伪装成浏览器或者手机应用客户端 ...

  5. python爬虫都能干什么用_5 行代码就能写一个 Python 爬虫

    欢迎关注我的公众号:第2大脑,或者博客:高级农民工,阅读体验更好. 摘要:5 行代码就能写一个 Python 爬虫. 如果你是比较早关注我的话,会发现我此前的大部分文章都是在写 Python 爬虫,前 ...

  6. python小白从哪来开始-Python爬虫小白入门(一)写在前面

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

  7. python能爬取什么_5行代码就能写个爬虫,python真是太方便了!

    不少读者是刚刚入门Python或者想学习Python的,今天就来谈谈如何用快速入门爬虫. 先说结论:入门爬虫很容易,几行代码就可以,可以说是学习Python最简单的途径. 以我纯小白.零基础的背景来说 ...

  8. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

  9. python简单好看的代码_Python新手写出漂亮的爬虫代码1

    初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说"老子会爬虫",就感觉特别有逼格,但是又不知从何入手,这里,博主给大家 ...

最新文章

  1. 技术 | Bengio终结Theano不是偶然,其性能早在Keras支持的四大框架中垫底
  2. 果蝇大脑研究能够改进计算机相似性搜索算法
  3. BZOJ 3576 江南乐
  4. 数据结构(莫队算法):国家集训队2010 小Z的袜子
  5. Spring使用Quartz配置调度事务
  6. django中的项目使用mysql中的配置新建用户授予权限
  7. 泛型DAO与泛型Service
  8. 大剑无锋之SpringBoot和Spring的区别
  9. Android dp、dip、dpi、px、sp简介及相关换算,及其应用实例
  10. ios 获取沙盒文件名_IOS获取各种文件目录路径的方法
  11. LINUX下载编译libav
  12. np.linspace函数用法
  13. matlab学习笔记 repmat函数与kron函数之区别
  14. 【那些年学过的计算机基础】--计算机发展史(图片版)
  15. 火狐firefox插件plugin:
  16. node配置邮箱发送验证码
  17. xgboost在LTR(学习排序)中的应用
  18. “一对一直播软件”的开发,离不开直播源码开发+系统搭建
  19. 主成分分析与因子分析之比较及实证分析
  20. Android修行手册 - Toolbar实践

热门文章

  1. Vue开发跨端应用(三)添加cordova
  2. IOS-React-Native:unable to find utility instruments, not a developer tool or in PATH
  3. Excel表格快速将公式运用到一整列
  4. python 日期时间处理 常用方法
  5. 设置IDEA中各种线条颜色
  6. Android Studio 受不了了
  7. Vue简单用法目录总结 以及 前端基础总结传送门:
  8. 微信助力活动表结构设计
  9. 08:Python数据分析之pandas学习
  10. 基础_模型迁移_CBIR_augmentation