入了Python这个坑 – 爬虫初体验

最近比较闲,所以有空帮朋友爬一个数据,然后就想起了Python。虽然以前用过Python,但从来没有去做过爬虫。总体来说,Python真的好用!被圈粉了。

什么是爬虫

首先应该弄明白一件事,就是什么是爬虫,为什么要爬虫,网上大概是这样说的:

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。说白了爬虫就是快速抓取网页内容,然后提取自己想要的信息。

爬的基础

在做爬虫前最好先简单了解一下浏览器的工作原理。

Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

爬虫要做的就是:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

(1)发起请求

使用http库向目标站点发起请求,即发送一个Request

Request包含:请求头、请求体等

 

(2)获取响应内容

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

 

(3)解析内容

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

 

(4)保存数据

数据库(MySQL,Mongdb、Redis)

文件

开始爬

废话说太多,不如直接上手开始。

在Python3中,可以使用urllib.request和requests进行网页爬取。

  • urllib库是python内置的,无需我们额外安装,只要安装了Python就可以使用这个库。
  • requests库是第三方库,需要我们自己安装。

requests库强大好用,所以推荐使用requests库获取网页的HTML信息。

(1)requests安装

可以使用如下指令安装requests库:

  • pip install requests
  • easy_install requests

使用pip和easy_install都可以安装,二选一即可。

(2)request基础方法

安装好requests库之后,我们先来大体浏览一下requests库的基础方法:

6

官方中文教程地址:

http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

requests库有详细的中文教程,查询起来很方便。

(3)小栗子

使用requests,爬取豆瓣top250电影

查看页面DOM结构,分析元素位置,拿到我们想要的标题。

把当前页面的电影名提取出来然后加到move_name_list中。

因为要获取的电影在不同的页面,我们可以通过点击“后页”遍历完所有的页面。

完整代码:

运行结果如下:

结果可以输出到txt、Excel、csv等文件中,下次再说。

发表评论

电子邮件地址不会被公开。 必填项已用*标注