Python爬虫学习-第二篇 Python爬虫扫盲与小栗子

       通过上篇博文的操作,我们搭建好了python的运行环境和开发工具,接下来我们就可以开始编写我们的小爬虫了。操作之前我们需要对爬虫的概念要有一个清晰地认识。

1.什么是爬虫

       简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返回给浏览器,这些代码经过浏览器解析、渲染,将丰富多彩的网页呈现我们眼前;互联网就好比一张大的蜘蛛网,我们访问的其实其中的一个节点,在这个节点上的利用程序自动抓取我们所要的信息,那么这个程序就是所谓的爬虫。

2.python爬虫的基本原理

     发送请求 --------------------->获取反馈内容------------------->解析内容--------------------->保存数据

     爬虫就是使用程序模拟用户,向目标网站发送请求,获取反馈内容,按照自定义的规则解析内容,获取目标数据进行保存或后续的处理。

发送请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应。

获取反馈内容
如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容。包含HTML,Json字符串,二进制数据(图片或者视频)等类型。

解析内容:获取内容的不同,就要使用不同的模块来处理,比如获取到时html代码,那么可以是使用正则模块,或者第三方解析库如Beautifulsoup,pyquery,scrapy等;获取到时json,使用json模块,甚至是二进制的数据,那么就需要保存至文件,等待下一步处理。

保存数据:获取数据,可以存至数据库(MySql,Mssql,MongoDB,Redis等),也可以直接写入文件

3.举个栗子

直接上代码,顺便送个福利,抓取优美网的美眉

Python爬虫学习-第二篇 Python爬虫扫盲与小栗子_第1张图片

python内建模块urilib提供了一系列用于操作URL的功能,urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应。

代码如下:

Python爬虫学习-第二篇 Python爬虫扫盲与小栗子_第2张图片

get_html的方法是请求指定的url,获取反馈回来的html内容,这里对反馈的html内容进行了格式转化成utf-8,防止乱码的生成。获取到内容,我们需要解析内容,找到我们需要的图片,通过正则表达式:

reg = r'src="(.+?\.jpg)" width'

,解析出美眉图片的路径,进行下载保存,代码如下:

Python爬虫学习-第二篇 Python爬虫扫盲与小栗子_第3张图片

在pycharm中运行爬虫文件,获取到美女的图片:

Python爬虫学习-第二篇 Python爬虫扫盲与小栗子_第4张图片

4.总结

    python的库非常丰富,功能强大且多样,一个看似复杂的爬虫,只要寥寥几行代码,就能实现,体现了python代码的优雅与简单。通过这篇文章,希望能对python的爬虫有个了解,当然这个爬虫还比较low,如何针对更复杂的网页的抓取,就需要使用第三方的爬虫库。详见Python爬虫学习系列后续篇章。

 

你可能感兴趣的:(python,python爬虫)