liazylee 2018-03-05
爬虫简介
根据百度百科定义:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
随着大数据的不断发展,爬虫这个技术慢慢走入人们的视野,可以说爬虫是大数据应运而生的产物,至少我解除了大数据才了解到爬虫这一技术
随着数据的海量增长,我们需要在互联网上选取所需要的数据进行自己研究的分析和实验。这就用到了爬虫这一技术,下面就跟着小编一起初遇python爬虫!
一、请求-响应
在利用python语言实现爬虫时,主要用到了urllib和urllib2两个库。首先用一段代码说明如下:
import urllib import urllib2 url="http://www.baidu.com" request=urllib2.Request(url) response=urllib2.urlopen(request) print response.read()
我们知道一个网页就是以html为骨架,js为肌肉,css为衣服所构成的。上述代码所实现的功能就是把百度网页的源码爬取到本地。
其中,url为要爬取的网页的网址;request发出请求,response是接受请求后给出的响应。最后用read()函数输出的就是百度网页的源码。
二、GET-POST
两者都是向网页传递数据,最重要的区别是GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。
POST则不会在网址上显示所有的参数,不过如果你想直接查看提交了什么就不太方便了,大家可以酌情选择。
POST方式:
import urllib import urllib2 values={'username':'[email protected]','Password':'XXXX'} data=urllib.urlencode(values) url='https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn' request=urllib2.Request(url,data) response=urllib2.urlopen(request) print response.read()
GET方式:
import urllib import urllib2 values={'username':'[email protected]','Password':'XXXX'} data=urllib.urlencode(values) url = "http://passport.csdn.net/account/login" geturl = url + "?"+data request=urllib2.Request(geturl) response=urllib2.urlopen(request) print response.read()
三、异常处理
处理异常时,用到了try-except语句。
import urllib2 try: response=urllib2.urlopen("http://www.xxx.com") except urllib2.URLError,e: print e.reason
总结