python 爬虫实例详细介绍之爬取大众点评的数据
一.
Python作为一种语法简洁、面向对象的解释性语言,其便捷性、容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能。本文主要介绍如何利用python进行网站数据的抓取工作。我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性、可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通。Java的可读性还可以,就是代码冗余比较多,同样的一个爬虫,java的代码量可能是python的两倍,感觉也没有python容易上手。因此,建议大家以后如果对爬虫有兴趣的话直接使用python就好。
二.本文首先爬取大众点评-北京的火锅这个条目下的部分数据。下面,我主要针对如何爬取数据进行讲解,针对数据进行分析的部分就略过。会根据我自己的理解和经验对代码进行详细的分析,比较适合初学者,高手请出门右转。由于是针对初学者,所以我最大程度地将代码进行精简,当然也因此删去了一些功能。
三、注意!
不要盲目的直接把代码复制直接运行,最好先看完本文,然后再运行。因为我是在ubuntu14.04下运行的我的代码,因此在获取数据时的编码格式不一样,输出信息到窗口时的编码也会有所不同,在Linux下默认编码是utf-8,而在windows下默认编码是gbk,所以,如果系统不同,直接运行代码,可能会输出乱码,这不代表我的代码有问题。需要注意的问题,在本文中我基本上都给了讲解,如果还有问题的话,欢迎留言探讨。
本人的浏览器为forefox,不同浏览器的查看元素的方法和界面也会有所不同,我在下文进行介绍时,只能以我的浏览器为准,不同的浏览器可以自己找一下相应的东西,一般不会差太多。
四.闲话少叙,直接上代码。# -*- coding:utf-8 -*-
importre
frombs4importBeautifulSoup
importjson
importthreading
fromrequestsimportSession
classdazp_bj:
def__init__(self,category):
self.baseUrl=‘http://www.dianping.com‘
self.bgurl=category[0]
self.typename=category[1]
self.page=1
self.pagenum&