浏览器抓取网页(学习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技术和行业经验,请关注-技校。