python爬虫之百度贴吧
摘要
Python是一种计算机程序设计语言,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分,网络爬虫为搜索引擎从万维网下载网页。本文是基于python语言编写的,通过对Html捉取数据,完成对图片的保存的百度贴吧爬虫项目。
本文主要是对爬虫项目的设计和实现分析,程序主要包括三个模块:URL解析,Html抓取,本地输出。Python的开发过程中,主要调用了Python中的urllib库中的request和parse模块,random库中的choice函数,lxml库中的 etree模块。
最终的程序可以实现对百度贴吧的指定贴吧,抓取指定页面的图片,并将图片保存到本地的功能。
1.引言
互联网是一个庞大的非结构化的数据库,将数据有效的检索并组织呈现出来有着巨大的应用前景。搜索引擎作为一个辅助人们检索信息的工具,用户可以从中获得想要的数据,但是也存在者一定的局限性,用户要通过浏览过多不必要的网页查找信息,并不能够快速获得指定数据。从百度贴吧中保存图片,需要打开每一个帖子的链接,然后逐张图片的保存,而保存大量的图片是比较困难的,浪费时间和精力。为了解决这个问题,我编写了这个爬虫程序,用于爬取指定贴吧的指定页面的所有图片。在这个程序中,只要输入想要爬取的贴吧名和想要爬取的起始页、终止页,后台就会自动将指定的图片全部保存到特定的文件中。
2.系统结构
图1 爬虫架构
(1)爬虫的基本流程:
①发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers、data等信息,然后等待服务器响应。
②获取响应内容:如果服务器能正常响应,我们会得到一个Response,Response的内容便是所要获取的内容,类型可能有HTML、Json字符串,二进制数据(图片,视频等)等类型。这个过程就是服务器接收客户端的请求,进过解析发送给浏览器的网页HTML文件。
③解析内容:得到的内容可能是HTML,可以使用正则表达式,网页解析库进行解析。也可能是Json,可以直接转为Json对象解析