因为代码只有几行,所以可以先贴代码:

import  urllib.request
url = r'http://douban.com'
res = urllib.request.urlopen(url)
html = res.read().decode('utf-8')
print(html)

第一行,导入 urllib库的request模块

第二行,指定要抓取的网页url,必须以http开头的

第三行,调用 urlopen()从服务器获取网页响应(respone),其返回的响应是一个实例

第四行,调用返回响应示例中的read()函数,即可以读取html,但需要进行解码,具体解码写什么,要在你要爬取的网址右键,查看源代码,

红框中的 charset= 则表示编码格式,我要爬取的网页编码为 utf-8,所以,解码我也填utf-8,如果是gbk2313,则填写的是GBK

(更为简单的方法是在程序中调用info()获取网页头部来查看编码方式:)

查看网页的头部信息以确定网页的编码方式:

import urllib.requestres = urllib.request.urlopen('http://www.163.com')
print(res.info())  #info()方法 用来获取网页头部

执行结果:


可以看出次网页的编码是 GBK。

第五行,打印就行。

但上面的写法是裸奔型写法,就是没有头部的,有一些网页你没有头部是不能访问的,会返回 403错误。

最正式的做法是仿照http的过程,在用爬虫获取网页的时候,加入头部,伪装成浏览器。

Http 其实就是 请求/响应模式,永远都是 客户端向服务端发送请求,然后服务端再返回响应。

有一个问题就是 头部改怎么加?可以打开你的浏览器,按F12,(我用的是谷歌浏览器)

F12打开开发者工具模式后,进入一个随便一个网页,开发者工具就会有东西出现

双击name栏的任意一个,在Headers 一栏会有个 User-Agent ,复制蓝色部分,蓝色部分就是头部。再把蓝色部分加入到爬虫程序中,见下面代码:

这种方式是推荐的

import urllib.requesturl = r'http://douban.com'
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
req = urllib.request.Request(url=url,headers=headers)
res = urllib.request.urlopen(req)
html = res.read().decode('utf-8')
print(html)

注意:urllib.request.Request()用于向服务端发送请求,就如 http 协议客户端想服务端发送请求

而 urllib.request.urlopen()则相当于服务器返回的响应

Python3爬虫(一)抓取网页的html相关推荐

  1. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  2. python抓取网页电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...

    利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...

  3. python正则表达式提取电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...

    利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...

  4. Python3.0 如何抓取网页

    用Python来抓取网页是很容易的,前面也写过很多类似的内容,但在Python3.0中,内容多多少少有些不同,下面进行一下介绍. 简单的抓取网页: import urllib.request url= ...

  5. python3爬虫基本操作——抓取股票信息

    目录 1. requests库发送请求,获取响应内容的字符串格式 2.Beautifulsoup解析并获取指定的内容 3.selenium库 没想到我的第一次 - - 写博客就这样毫无预兆地发生了.其 ...

  6. python爬虫爬取网页图片_Python爬虫实现抓取网页图片

    在逛贴吧的时候看见贴吧里面漂亮的图片,或有漂亮妹纸的图片,是不是想保存下来? 但是有的网页的图片比较多,一个个保存下来比较麻烦. 最近在学Python,所以用Python来抓取网页内容还是比较方便的: ...

  7. Python3爬虫图片抓取

    (1)实战背景 上图的网站的名字叫做Unsplash,免费高清壁纸分享网是一个坚持每天分享高清的摄影图片的站点,每天更新一张高质量的图片素材,全是生活中的景象作品,清新的生活气息图片可以作为桌面壁纸也 ...

  8. java网页爬虫xml_基于webmagic的java网页爬虫,抓取网页指定节点,然后使用dom4j分析xml数据...

    /* * Android数据存储之SharedPreferences * 步骤: * 一.根据Context获取SharedPreferences对象 * 二.利用edit()方法获取Editor对象 ...

  9. python爬虫抓取图片-怎么用爬虫批量抓取网页中的图片?

    这个也有点简单了吧,之前观点网爬知乎的代码,直接给你上了: def download_img(url,classify): try: extention=get_extension(url) if(e ...

  10. 【Java爬虫】我的第一个爬虫 -- 简单抓取网页源代码

    代码 直接运行即可 package cn.hanquan.file;import java.io.IOException; import java.io.InputStream; import jav ...

最新文章

  1. usaco shuttle puzzle(dfs剪枝)
  2. 五款常用协议分析处理工具推荐
  3. android 上传字符串,Android中发送Http请求(包括文件上传、servlet接收)的实例代码...
  4. 安装eAccelerator
  5. Jmeter性能测试之Switch控制器使用
  6. 转载:cin总结附带string输入总结
  7. Python之值得学习练手的22个迷你程序(附代码)
  8. SDNU 1481.纪念品分组(水题)
  9. js 实现轻量ps_简单轻量的池实现
  10. 用eclipse配置spket编写extjs代码方法
  11. linux scp限制传输速度
  12. 美图秀秀去广告单文件版 v6.4.3.0
  13. TCPMP-interface相关文件函数解析 -about.c
  14. python图像配准的原理_SIFT图像匹配及其python实现
  15. Matlab数据线性化
  16. Cross Apply 与 Outer Apply 的区别
  17. 因为迁移,所以出卖(1)
  18. HTML-CSS前端大作业一站式教育机构响应式前端网页网站模板
  19. 分享一款免费实用的野外调查巡检、户外旅行、外业作业地图数据采集软件
  20. 用Git上传代码到华为云(图解详细)

热门文章

  1. 「家电观察室」 4K与VR能否占据客厅娱乐?
  2. resultType和resultMap
  3. [MTK] 解决预置支付有关APK打开提示权限问题
  4. vue项目添加水印,防止刷新页面水印消失
  5. js延时周期发送请求
  6. 建设银行科技岗位秋招经历
  7. 小波分析——4.使用小波对信号成分进行分析
  8. html5视频作为页面背景,使用视频作为网页背景的技术探讨
  9. js拼接字符串时,字符串首出现undefined的问题
  10. 为什么维也纳智慧城市全球排名第一?