浏览器抓取网页(学习Python包并实现基本的爬虫过程Python中爬虫相关的包)

优采云 发布时间: 2021-12-29 17:09

  浏览器抓取网页(学习Python包并实现基本的爬虫过程Python中爬虫相关的包)

  随着互联网数据的爆发式增长,我们可以通过使用Python爬虫获取大量有价值的数据:

  1. 爬取数据,进行市场调研和商业分析

  抓取知乎优质答案,筛选每个话题下的最佳内容;抓取房地产网站买卖信息,分析房价走势,做不同区域的房价分析;抓取招聘网站的职位信息,分析各行业层次的人才需求和薪酬。

  2.作为机器学习和数据挖掘的原创

数据

  比如你想做一个推荐系统,那么你可以爬取更多维度的数据,做一个更好的模型。

  3. 爬取优质资源:图片、文字、视频

  爬取商品评论和各种图片网站,获取图片资源和评论文字数据。

  掌握正确的方法,能够在短时间内抓取主流网站的数据,其实很容易。

  

  首先我们来了解一下爬虫的基本原理和流程

  大多数爬虫都遵循“发送请求-获取页面-解析页面-提取并存储内容”的过程,实际上模拟了使用浏览器获取网页信息的过程。

  简单的说,我们向服务器发送请求后,会得到返回的页面。解析完页面后,我们就可以提取出我们想要的那部分信息,存放在指定的文档或数据库中。

  在这部分,您可以对HTTP协议和网页的基础知识,如POSTGET、HTML、CSS、JS等有一个简单的了解,简单的了解一下,无需系统学习。

  学习Python包,实现基本爬取过程

  Python中有很多爬虫相关的包:urllib、requests、bs4、scrapy、pyspider等,建议从requests+Xpath入手。Requests 负责连接到网站并返回到网页。Xpath用于解析网页,方便数据提取。

  如果你用过BeautifulSoup,你会发现Xpath省了很多麻烦,层层检查元素代码的工作全部省略了。掌握了之后,你会发现爬虫的基本套路都差不多。一般的静态网站都不是问题。小猪,豆瓣,尴尬百科,腾讯新闻等基本都可以用。

  

  保存数据

  首先,我们说到存储数据,是因为在最初的学习中,接触很少,没有必要过多关注。随着学习的逐渐深入,当我们需要保存大量数据的时候,就需要学习数据库了。相关知识!

  初期,我们抓到需要的内容后,只需要保存到本地即可。无非是文件、表格(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。网页的编码格式一般是源代码中标签下的字符集。在属性中指定)。只需添加一行。

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

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

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

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

  

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

  剩下的我们慢慢研究。

  总结

  

  Python爬虫技术不需要你系统地精通一门语言,也不需要任何高级的数据库技术。高效的姿势就是从实际项目中学习这些零散的知识点,可以保证每次学习到的都是最需要的部分。

  当然,唯一的麻烦是在具体问题中,如何找到具体需要的那部分学习资源,如何筛选筛选,是很多初学者面临的一大难题。

  分享IT技术和行业经验,请关注-技校。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线