网页数据抓取怎么写(网络爬虫的2个功能:取数据和存数据!)

优采云 发布时间: 2021-12-18 13:19

  网页数据抓取怎么写(网络爬虫的2个功能:取数据和存数据!)

  很多朋友在开始python的时候都是从爬虫开始的,网络爬虫是这几年比较流行的概念。尤其是大数据分析流行之后,越来越多的人开始学习网络爬虫,哦对了,现在叫数据挖掘!

  

  其实一般爬虫有两个功能:取数据和存储数据!好像是在胡说八道。. .

  从这两个功能的扩展来看,需要很多知识:请求数据、反爬虫处理、页面分析、内容匹配、绕过验证码、保持登录、数据库等相关知识。今天我们就来聊一聊。简单爬虫,一般需要的步骤!

  

  保存数据

  先说存储数据,因为在最初的学习中,接触很少,不需要过多关注。随着学习的逐渐深入,当我们需要保存大量数据时,就需要学习数据库的相关知识。向上!稍后我们将分别解释这一点。

  初期,我们抓到需要的内容后,只需要保存到本地即可。无非是文件、表格(excel)等几种方法。这里只需要掌握with语句就可以基本保证需求。它看起来像这样:

  with open (path and file name, save mode) as f:

  f.write(数据)#如果是文本,可以直接写入,如果是其他文件,数据最好用二进制方式

  当然需要使用xlwt库(excel)和python-docx库(word)保存到excel表格或者word文档中。这个网上很多,可以自己学。

  

  获取数据

  说了这么多,终于到了正题,如何抓取我们想要的数据呢?我们一步一步来!

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

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

  导入请求#导入库

  url ='您的目标网址'

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

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

  这几行代码就可以拿到网页的源码了,但是有时候会出现乱码,为什么呢?

  由于中文网站收录中文,而终端不支持gbk编码,我们在打印时需要将中文从gbk格式转换为终端支持的编码,一般为utf-8编码。

  所有我们需要在打印响应之前指定编码(我们可以直接指定代码显示的编码格式为网页本身的编码格式,比如utf-8,网页的编码格式一般是标签下的charset在源代码属性中指定)。只需添加一行

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

  至此,我们已经获得了网页的源代码。下一步是在杂乱的源代码中找到我们需要的东西。这里需要用到各种匹配方法。常用的方法有:正则表达式(re库)、bs4(Beautifulsoup4库)、xpath(lxml库)!

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

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

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

  获取源码的时候遇到了反爬,无法获取数据。部分网站需要登录才能获取内容。遇到验证码后,将内容写入文件,出现错误。如何设计获取大量内容乃至全站爬虫的循环

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

  

  Python学习群:542110741

  总之,学习本身就是一个漫长的过程,需要我们不断的实践来增强学习的兴趣,学到更多扎实的知识!大家来吧!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线