Python爬虫:爬虫基础and粗鲁地爬取一个网页

今天我们要学习的内容是轻量级的爬虫,即我们所抓取的页面是静态加载的网页内容,而不是那些需要用户登录或者JavaScript异步加载的网页内容。

首先我们明确一个问题:爬虫能干什么?

爬虫:一段自动抓取互联网信息的程序

我们可以把互联网看成URL组成的网状结构,就像下图一样:

我们通过手工的方式来访问其中的部分URL,当我们有访问很多的具有某一方面的相同特征的网页需要,手工的方式效率就太低了。网络爬虫就是帮助我们来解决这个问题,爬虫可以从一个URL出发,访问所有的相关联的URL,并且可以从页面中提取我们所需要的价值数据。则上图就变成了这样:

 用户浏览网站的过程:

  • 用户输入网址
  • 经过DNS服务器,找到服务器主机
  • 向服务器提出请求,服务器经过解析之后,向用户的浏览器发送html、css、JavaScript等文件
  • 用户获取想要的信息

爬虫要做的就是将这些html代码获取到,并对这些代码进行过滤,通过分析和过滤这些html代码,实现对资源的获取

url:统一资源定位,也就是我们通常说的网址。它包括三部分组成:协议、包含有该资源的主机IP地址(有时也包括端口号)以及文件,要通过爬虫获取想要的资源,就必须指定特定的url

接下来,我们完成一个简单的爬取操作——粗鲁地爬取一个网页的全部内容

我们通过一段简单的代码就可以爬取到百度主页的所有内容:

import urllib.request
response=urllib.request.urlopen("http://www.baidu.com")
print(response.read())

我们得到百度主页的源代码(简单显示一小段):

<!DOCTYPE html>\n<!--STATUS OK--><meta name="theme-color" content="#2932e1">\n    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

大家可以通过百度主页——查看网页源代码来进行对照。那么,这短短的几行代码又为什么能够爬取到网页的源代码呢?接下来我们就来进行一个解释:

  • import urllib.request导入urllib.request库,这个库主要的作用有以下几个方面:获取web页面、在远程http服务器进行验证、额外数据请求,如get和post数据、异常处理、非http协议通信(如FTP)
  • response=urllib.request.urlopen("http://www.baidu.com"),调用urlopen方法获取到想要访问的网页的内容。urlopen(url,data,timeout),其中url为要访问的网址,是不能省略的。data是在爬取网页内容时要传入的数据,默认为none,timeout为超时时间,默认为socket_GLOBAL_DEFAULT_TIMEOUT
  • print(response.read()),将获取到的资源打印出来

这里是一个简单的获取整个网页内容的方法,只需要三行代码,但我们往往需要将自己想要的信息提取出来,这就是我们接下来要学习的内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值