您的位置:首页 > 编程语言 > Python开发

Python基础知识——爬虫入门

2016-11-08 09:49 585 查看
爬虫,即网络爬虫。打个形象的比方:一只蜘蛛在蜘蛛网上爬,可以以某种方式从网上的某个地方找到自己想要的东西。

那么和网页相联系起来有什么关系呢?

首先我们先简单介绍一下网页的基本概念。所谓网页,也就是我们给浏览器输出一个字符串,浏览器进行解析后,经DNS服务器找到服务器主机后,向服务器发出请求,服务器经过解析之后,向浏览器发送Html、JS、CSS等文件,再由浏览器进行解析,组成了平时我们所见的可视化网页。所以说网页的实质就是指服务器传送过来的Html、JS、CSS等文件。这些文件简要概括起来就是对文字图片的获取,在经由规则化排布,组成网页。比较来说:Html就是网页的骨架、JS就是网页的肌肉、CSS就是网页的衣服,组成了一个完整的"人"。

那么我们输入的字符串也就是我们说的网址到底是什么?即URL,即统一资源定位符。它是互联网上资源位置和访问方式的一种简洁的表示,它是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。例:"http://baidu.com",url由三部分组成:

1、协议,也就是服务方式,大部分我们平常使用的网址都是http协议的。

2、存有该资源的主机IP地址。

3、主机资源的具体地址。

理解了url我们对爬虫的理解也就更近了一步。

爬取第一个网页!!!

Python中与抓取网页相关的库有urllib和urllib2。两者有点小区别:

urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。目前的大部分http请求都是通过urllib2来访问的。

举例:

#coding=utf-8
import urllib2
url = 'http://www.zhihu.com/topic/19607535/top-answers'
netthings= urllib2.urlopen(url)
print netthings.read() #使用urllib2模块爬虫抓取了特定网页输出就不列举了,网页内容太多。
这里使用了urllib2模块的urlopen函数,先拉取了一个网页,存储到netthings对象中,再用netthings对象的read方法将网页内容返回。urlopen(url,data,timeout),这个函数接受三个参数,第一个参数:url即网址,第二个参数:data,可以是需要传入的登录账户和密码,可以为空,第三个:timeout,设置超时时间,可以为空。

这样我们就简单的抓取了我们的第一个网页啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息