自己动手,丰衣足食!Python3网络爬虫实战案例

适宜人群:

  • 萌新小白:我连爬虫也不知道是什么
  • 入门菜鸟:我对一些爬虫的用法还不是很熟练
  • 老司机:我想学习更高级的框架及分布式

从环境基础到进阶分布式,由浅入深,逐篇递进。

urllib是基于http的高层库,它有以下三个主要功能:

(1)request处理客户端的请求

(2)response处理服务端的响应

(3)parse会解析url

一、爬取网页内容

我们知道,网页上呈现的优美页面,本质都是一段段的HTML代码,加上JS 、CSS等,本人也是刚开始学python,这个文章也比较小白,资深老鸟请忽略~~。

本文所说的代码都是基于python3的,使用phython2的请注意

python 3.x中urllib库和urilib2库合并成了urllib库

其中urllib2.urlopen()变成了urllib.request.urlopen()

urllib2.Request()变成了urllib.request.Request()

那么获取网页有哪一些方法呢?这里列举了三种方法,具体查看代码。

import urllib.requestimport http.cookiejarurl = '直接通过url来获取网页数据print('第一种 :直接通过url来获取网页数据')response = urllib.request.urlopen(url)html = response.read()

将上面的代码copy之后,在pycharm新建一个python项目,如下图,新建一个python file ,命名为demo.py 黏贴上面的代码

GET方式:

上面我们使用的是post的形式的,至于GET方式区别就是在URL上,我们如果直接把参数写到网址上面,构建一个带参数的URL。

values={}

四、添加头部

从上面的代码我们可以知道,可以使用build_opener 获取到opener对象,来添加头部

cookie = http.cookiejar.CookieJar()

五、http 错误

import urllib.request req = urllib.request.Request(' ')

六、异常处理

except HTTPError as e:

except URLError as e:

from urllib.request import Request, urlopen

except URLError as e:

if hasattr(e, 'reason'):

elif hasattr(e, 'code'):

from urllib.request import Request, urlopen

七、HTTP 认证

import urllib.request

八、使用代理

import urllib.request proxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})

九、超时

【天善学院】自己动手,丰衣足食!Python3网络爬虫实战案例 附讲义与代码 6 A+所属分类:Python教程相关推荐

  1. 【天善学院】自己动手,丰衣足食!Python3网络爬虫实战案例 附讲义与代码

    Python3 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具 ...

  2. python3爬虫实例-自己动手,丰衣足食!Python3网络爬虫实战案例

    本教程是崔大大的爬虫实战教程的笔记:网易云课堂 Python3+Pip环境配置 用到的IDE是PyCharm,Windows下到官网下载就行(Professional版本):http://www.je ...

  3. 自己动手,丰衣足食!Python3网络爬虫实战案例

    +我威信哦:WYZZXNDYL 第一章:环境配置; [1 r2 i0 H. C# R9 x: R 1 Python3+Pip环境配置  22:10   1 e$ z, ~' y. p  E 购买后请及 ...

  4. Python网络爬虫实战案例之:7000本电子书下载(2)

    一.前言 本文是<Python开发实战案例之网络爬虫>的第二部分:7000本电子书下载网络爬虫开发环境安装部署.配套视频课程详见网易云课堂 二.章节目录 (1)Python开发环境依赖 ( ...

  5. Java网络爬虫实战案例一

    紧接我们上次的问题,如何获取服务器发送的资源,保存到本地?上一篇文章见java网络爬虫核心原理. 一.Java IO流三分游(input,output)   我们知道计算机是用来处理数据的.所有的程序 ...

  6. Python3网络爬虫实战-38、动态渲染页面抓取:Splash的使用

    Splash 是一个 JavaScript 渲染服务,是一个带有 HTTP API 的轻量级浏览器,同时它对接了 Python 中的 Twisted和 QT 库,利用它我们同样可以实现动态渲染页面的抓 ...

  7. Python3网络爬虫实战解析——优美壁纸爬取

    在上一博客中,我们已经学会了如何使用Python3爬虫抓取文字,那么在本问中,将通过实例来教大家如何使用Python3爬虫批量抓取图片. (1)实战背景 URL:https://unsplash.co ...

  8. Python3网络爬虫实战-24、requests:基本使用

    在前面一节我们了解了 Urllib 的基本用法,但是其中确实有不方便的地方.比如处理网页验证.处理 Cookies 等等,需要写 Opener.Handler 来进行处理.为了更加方便地实现这些操作, ...

  9. 【Python】Python3网络爬虫实战-24、requests:基本使用

    在前面一节我们了解了 Urllib 的基本用法,但是其中确实有不方便的地方.比如处理网页验证.处理 Cookies 等等,需要写 Opener.Handler 来进行处理.为了更加方便地实现这些操作, ...

最新文章

  1. 什么是CMU Pronoucing Dictionary(CMU发音词典)
  2. Bengio、Hinton的不懈追求——深度学习算法揭示大脑如何学习
  3. 并发编程11-测试并发程序
  4. 支付宝sdk 支付订单查询失败
  5. vue开发(1) 软件安装
  6. VTK:actors的类型用法实战
  7. SAP S/4HANA Cloud SDK 入门介绍
  8. css3怎么设置logo,纯CSS3实现的LOGO标志 ABN AMRO CSS3 logo
  9. 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素
  10. 业务随行:用户的网络访问策略还能这么玩
  11. Mysql函数Last_insert_id()的真正含义
  12. mysql数据库查询笔记_mysql笔记: 查询
  13. Java接口自动化之TestNG单元测试框架(一)
  14. 【原创】大叔问题定位分享(11)Spark中对大表子查询加limit为什么会报Broadcast超时错误...
  15. java glob paths_何时在JAVA的glob语法中使用**(双星)
  16. 人人译视界 for Mac(智能翻译软件)
  17. 常用的北斗高精度定位技术有哪些?
  18. Ruby之父松本行弘的编程人生
  19. JavaScript——利用正则表达式实现二代身份证号码的验证
  20. R语言ggplot2可视化哑铃图、强调从一个点到另一个点的变化、数量的变化、客户满意度的变化等(Dumbbell Plot)、为可视化图像添加标题、题注信息

热门文章

  1. mysql端口号543_TCP/UDP常用端口及对应服务列表
  2. 2020 最新java面试题附答案
  3. cad详图怎么画_初学CAD如何能画的快,出图迅速?15个小技巧分钟成高手
  4. 开发板搭建FTP服务器
  5. [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题
  6. 如何提高机器人专业课讲师的收入
  7. Tinyos Makerules解读
  8. 在arm上使用Cachegrind的一些心得
  9. Python之父Guido Van Rossum宣布加入微软
  10. 关于8259中断控制器