Python爬虫总结(一)入门
很多做数据分析的同学会抱怨没有实际数据,感觉巧妇难为无米之炊,而火车头采集器一类的软件很难完成一些定制性很强的数据采集任务,这时候就需要自己编写爬虫来采集数据了。python是目前做爬虫比较流行的工具。
爬虫的一般原理
爬虫一般通过发送http/https请求,从服务器获取数据,进一步解析获取的数据,最后得到有用的信息。而爬虫发送的http/https请求主要是GET和POST两类请求数据。
GET请求
简单的GET请求:
import urllib2 url ="https://movie.douban.com/" result = urllib2.urlopen(url) print result.read()
上述代码发送了一个的https请求给豆瓣movie的服务器,并将服务器返回的信息加载过来打印到屏幕上。
也可以发送带参数的GET 请求:
import urllib2 params = {'n':'UestcNews.Front.Document.SpecialReportArticleDocument','Id':'55029'} url ="http://www.news.uestc.edu.cn/?%s" result = urllib2.urlopen(url%params) print result.read()
上述代码发送了一个http的GET请求,并添加了参数n和id。
POST请求
import urllib2 import urllib #定义要提交的数据 postdata={ 'user_name':'abc' 'passwd':'123' } #postdata编码 postdata=urllib.urlencode(postdata) request = urllib2.Request('http://www.xxxx.com/login',postdata) response=urllib2.urlopen(request) print response
上述代码发送了一个登陆的POST请求,模拟登陆是数据采集常用的一个功能,后面我会有更详细的介绍.
其它包
其实python发送http/https的包有很多,这里我只用了urllib2,除此之外还有urllib,更底层的httplib,还有一个第三方包requests.
说到第三方包,用python做爬虫的一大优势就是它有很多很好用的爬虫相关的第三方包,后面我会一一介绍.
总结
今天我们学到了如何用python 发送http/https的GET POST请求,通过GET POST请求我们就可以获取到web数据,下一篇我将介绍网络爬虫经常要处理的数据的类型和处理方法.