Python的爬虫库其实很多,像常见的urllib,requests,bs4,lxml等,初始入门爬虫的话,可以学习一下requests和bs4(BeautifulSoup)这2个库,比较简单,也易学习,requests用于请求页面,BeautifulSoup用于解析页面,下面我以这2个库为基础,简单介绍一下Python如何爬取网页静态数据和网页动态数据,实验环境win10+python3.6+pycharm5.0,主要内容如下:
Python爬取网页静态数据
这个就很简单,直接根据网址请求页面就行,这里以爬取糗事百科上的内容为例:
1.这里假设我们要爬取的文本内容如下,主要包括昵称、内容、好笑数和评论数这4个字段:
打开网页源码,对应网页结构如下,很简单,所有字段内容都可以直接找到:
2.针对以上网页结构,我们就可以编写相关代码来爬取网页数据了,很简单,先根据url地址,利用requests请求页面,然后再利用BeautifulSoup解析数据(根据标签和属性定位)就行,如下:
程序运行截图如下,已经成功爬取到数据:
Python爬取网页动态数据
很多种情况下,网页数据都是动态加载的,直接爬取网页是提取不到任何数据的,这时就需要抓包分析,找到动态加载的数据,一般情况下就是一个json文件(当然,也可能是其他类型的文件,像xml等),然后请求解析这个json文件,就能获取到我们需要的数据,这里以爬取人人贷上面的散标数据为例:
1.这里假设我们爬取的数据如下,主要包括年利率,借款标题,期限,金额,进度这5个字段:
2.按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就可以找到动态加载的json文件,具体信息如下:
3.接着,针对以上抓包分析,我们就可以编写相关代码来爬取数据了,基本思路和上面的静态网页差不多,先利用requests请求json,然后再利用python自带的json包解析数据就行,如下:
程序运行截图如下,已经成功获取到数据:
至此,我们就完成了利用python来爬取网页数据。总的来说,整个过程很简单,requests和BeautifulSoup对于初学者来说,非常容易学习,也易掌握,可以学习使用一下,后期熟悉后,可以学习一下scrapy爬虫框架,可以明显提高开发效率,非常不错,当然,网页中要是有加密、验证码等,这个就需要自己好好琢磨,研究对策了,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你上有所帮助吧,也欢迎大家评论、留言。
学习python的爬虫用先学习html吗?
最好学习一下,不要求熟悉,但必须要会,我们爬虫所爬取的网页数据大部分都会直接或间接嵌套在html标签或属性中,如果你对html一点都不了解,也就无从谈及数据的解析和提取,下面我简单介绍一下python爬虫的学习过程,感兴趣的朋友可以尝试一下:
基础html知识
这个是最基本也是必须的,首先,学习网络爬虫,你就需要学习html知识,网页是用html写的,数据自然也会嵌套在其中,无非就是某一个标签或属性,如果你对html一点都不了解,也就无从谈及解析规则的编写,数据也就无从提取,不要求多么熟悉、精通html,但基本的标签、属性必须要能看懂,如果你没有这方面基础的话,建议学习一下,初学入门html,也主要以记忆为主,很快就能掌握:
基本爬虫库
基础的html知识掌握后,就是网络爬虫的编写,这里可以从一些简单易用、容易上手的爬虫库开始,比较常见的就是urllib、requests、beautifulsoup、lxml,官方教程非常详细,先获取网页数据,然后再编写解析规则提取即可,对于大部分静态网页来说,都可以轻松爬取,动态网页数据的提取可能需要抓包分析(数据不会直接在网页源码中看到),但基本原理类似,也是先获取数据,然后再解析提取:
专业爬虫框架
基本爬虫库熟悉后,大部分网页数据都可以爬取,但需要反复造轮子,效率不高,也不易于后期维护和扩展,这里可以学习一下专业强大的爬虫框架,python来说,比较受欢迎、也比较流行的就是scrapy,框架成熟、稳定,可扩展性强,只需编写少量代码即可快速开启一个爬虫程序,初学入门来说也非常友好,官方文档丰富,社区活跃,资料齐全,各个模块组件都是独立开源的,后期研究学习也非常不错:
总之,python爬虫对html要求不高,但必须要了解,能看懂基本的网页结构、标签和属性,后期才能编写具体的解析规则提取数据,建议多看多练,熟悉一下scrapy框架的使用,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
python的爬虫究竟有多强大?
通过爬虫可以获取一个人多少信息,有具体案例么分享下
世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。
什么是爬虫?
网络爬虫通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据。
爬虫可以做什么?
你可以用爬虫爬图片,爬取视频等等你想要爬取的数据,只要你能通过浏览器访问的数据都可以通过爬虫获取。
什么是Python?
Python(大蟒蛇)是一门解释型、面向对象、带有动态语义的高级程序设计语言。
Python具有强大而丰富的类库,也经常被别人说是胶水语言,可以跟其它语言写的模块结合在一起。
优点
1.简单:Python是一种代表简单主义思想的语言。
2.易用:Python简单容易上手,因为有简单容易看懂的文档。
3.速度快:运行速度快,因为Python中的标准库和第三方库都是C语言编写的,所以很快。
4.免费、开源:Python是一款FLOSS(自由/源代码软件)之一,使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
5.高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
6.可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
7.解释性:Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
8.面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
9.可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
10.可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
11.丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。
12.规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。