Python爬取网页数据
爬取网页数据是一个比较常见的Python应用场景,有很多第三方库可以帮助我们完成这个任务。这里我们介绍一下urllib库中的一个常用方法:urllib.request.urlopen()。
urllib.request.urlopen()方法用来打开一个网页,并返回一个包含网页内容的对象。使用这个方法我们可以很方便地抓取网页内容,比如我们可以用它来抓取网页的源代码。
下面是一个简单的例子:
coding=utf-8 import urllib.request 打开一个网页 response = urllib.request.urlopen("http://www.baidu.com") 读取网页内容 data = response.read() 将网页内容转化为字符串 str_data = data.decode('utf-8') 打印网页内容 print(str_data)
运行结果:
<html <!--STATUS OK--<head <meta http-equiv="content-type" content="text/html;charset=utf-8" <meta http-equiv="X-UA-Compatible" content="IE=Edge" <meta content="always" name="referrer" <link rel="stylesheet" type="text/css" href="http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css" </head <body link="0000cc" <div id="wrapper" <div id="head" <div class="head_wrapper" <div class="s_form" <div class="s_form_wrapper" <div id="lg" <img hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" width="270" height="129" </div <form id="form" name="f" action="//www.baidu.com/s" class="fm" <input type="hidden" name="bdorz_come" value="1" <input type="hidden" name="ie" value="utf-8" <input type="hidden" name="f" value="8" <input type="hidden" name="rsv_bp" value="1" <input type="hidden" name="rsv_idx" value="1" <input type="text" name="wd" class="kw" placeholder="请输入关键词" <input type="submit" class="su" value="百度一下" <span class="tools" <a href="http://www.baidu.com/more/"更多工具»</a </span </form </div </div <div id="u1" <a href="http://news.baidu.com" name="tj_trnews"新闻</a <a href="http://www.hao123.com" name="tj_trhao123"hao123</a <a href="http://map.baidu.com" name="tj_trmap"地图</a <a href="http://v.baidu.com" name="tj_trvideo"视频</a <a href="http://tieba.baidu.com" name="