参考书籍:《用 Python 写网络爬虫》

当然你也可以自己百度搜索下载。

一点感想

书看一遍是不够的,温故而知新。

下载一个网页源代码

最简单的形式

使用的是 python 自带的库 urllib2

import urllib2

def download(url):

print "downloading " , url

html = urllib2.urlopen(url).read()

return html

给定想要下载的 URL 即可下载其源代码。

添加处理异常的功能

当然很有可能在下载的过程中出现各种问题,导致出现问题,所以需要在上面的程序上扩展,处理异常的情况。

import urllib2

def download(url):

print "downloading " , url

try:

html = urllib2.urlopen(url).read()

except urllib2.URLErrors as e:

print "download error: " , e.reason

html = None

return html

完整的程序如下:

# _*_ encoding:utf-8 _*_

'''

Created on 2017年8月4日

@author: wangs0622

'''

import urllib2

def download(url):

print "downloading " , url

try:

html = urllib2.urlopen(url).read()

except urllib2.URLError as e:

print "download error: " , e.reason

html = None

return html

if __name__ == '__main__':

download('http://www.wangs0622.com/dex')

运行的结果如下:

downloading http://www.wangs0622.com/dex

download error: Not Found

添加重试下载功能

有的时候,下载出现了问题,可能是但是网络不好的原因,也有可能是页面不存在的原因,一般会返回 4xx 和 5xx 类型的错误代码。 最常见的莫过于 404,即表示网页未找到。(为什么网页为找到,使用的是 404 代码呢? 据说是有历史原因的,有兴趣的话可以去百度。)

正常情况下,返回 5xx 错误代码的话,是因为网络的原因,并不是网页不存在,这个时候,我们可以尝试重新下载这个网页,所以,就有了如下的改进版本。

import urllib2

def download(url, num_retries = 5):

'''

function: 下载网页源代码,如果遇到 5xx 错误状态,则继续尝试下载,知道下载 5 次为止。

'''

print "downloading " , url

try:

html = urllib2.urlopen(url).read()

except urllib2.URLError as e:

print "download error: " , e.reason

html = None

if num_retries > 0:

if hasattr(e,'code') and 500 <= e.code < 600:

return download(url, num_retries-1)

return html

一个有用的网站

小结

截止目前的 download() 函数已经具备健全的下载网页源代码的功能,可以应付一般情况下的使用了。

后面还需要介绍为 download() 函数添加代理和下载延时功能,之后再介绍 链接爬虫。我想法是在介绍这些功能的同时我们实践爬取一个网站。相信学爬虫的都是广大男士,后面实践爬取的网站是:http://www.mm131.com 我们的目标是将其中的图片下载下来。

python 爬虫源代码-python 爬虫-1:下载网页源代码相关推荐

  1. html网页源代码是什么 如何查看网页源代码经验篇

    网页源代码目录 网页源代码是什么 查看网页源代码 其它浏览器查看源代码方法 查看源代码总结 一.什么是网页源代码?   -   TOP 通俗了解,通过html语法规则让图片.文字等内容,在浏览器显示出 ...

  2. python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

  3. Python 爬虫篇-利用urllib库下载网页中的图片实例演示

    我们用的是 urllib 库,这个库是 python 自带的,我们直接就可以使用. 我们需要来了解一下基本原理,它可以通过图片地址将图片下载下来. 我们来找一张图片做实例看一下. 查看图片的地址,把地 ...

  4. python3.0下载用什么浏览器_无法让Python下载网页源代码:“不支持浏览器版本”...

    查看您列出的url,我执行了以下操作:使用wget下载了页面 将urllib与ipython一起使用并下载了页面 使用chrome,只保存了url 所有3个都给了我相同的结果文件(相同的大小,相同的内 ...

  5. Python3 爬虫(一)-----爬取网页源代码

    参考博客:http://blog.csdn.net/mr_tank_/article/details/14102159 刚刚学了正则表达式,就用Python玩了玩 由于Python3 和Python2 ...

  6. android米思奇打地鼠源代码,打地鼠 - 源码下载|游戏|源代码 - 源码中国

    打地鼠 打地鼠\.classpath 打地鼠\.project 打地鼠\.settings 打地鼠\.settings\org.eclipse.jdt.core(1).prefs 打地鼠\.setti ...

  7. 用requests获取网页源代码 python-手把手教你利用爬虫爬网页(Python代码)

    本文主要分为两个部分:一部分是网络爬虫的概述,帮助大家详细了解网络爬虫:另一部分是HTTP请求的Python实现,帮助大家了解Python中实现HTTP请求的各种方式,以便具备编写HTTP网络程序的能 ...

  8. python爬虫代码-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  9. 【Python爬虫】第一课 Python爬虫环境与爬虫简介

    1.1 认识爬虫 网络爬虫作为收集互联网数据的一种常用工具,近年来随着互联网的发展而快速崛起.使用网络爬虫爬取网络数据首先需要了解网络爬虫的概念和主要分类,各类爬虫的系统结构,运作方式,常用的爬取策略 ...

最新文章

  1. 安全攻防技能——Web安全——XSS
  2. Web服务器 Web容器 Servlet容器
  3. 浅谈线程池(中):独立线程池的作用及IO线程池
  4. jvm中的年轻代 老年代 持久代 gc ----------转载
  5. SAP Spartacus里的StorefrontConfig静态类型
  6. logisim输出变成红色的e_新车实拍解析 福特Mustang Mach-E亮点实拍图解
  7. 量化信噪比 非均匀量化_达尔优EM910牧马人轻量化游戏鼠标拆解评测
  8. Qt creator5.7 OpenCV249之图片膨化(含源码下载)
  9. 推荐一款思维在线思维导图,为什么?
  10. Codeforces Round #544 (Div. 3) A.Middle of the Contest
  11. 记一次天猫商城系统高并发的优化
  12. 4.序列化器-Serializer
  13. 怎样登陆微信小程序?怎样登陆微信小程序后台?微信小程序成员如何登陆后台管理?微信小程序怎么登录,如何正确登录微信小程序后台?微信小程序如何登录页面?具体操作步骤如下
  14. 5分钟用C#实现串口助手
  15. 深度学习AI美颜系列---人像审美
  16. 外媒曝:暴雪《炉石传说》或登陆安卓和WP平台
  17. 比较好的刷题网站推荐
  18. 《程序员延寿指南》火爆 GitHub,日涨 1500+ 星,优秀 !
  19. 【PySide6】三、设置系统托盘
  20. NOIP提高组初赛模拟赛赛后感想

热门文章

  1. Windows XP Professional系统修复的操作方法
  2. js和java中URI的编码和解码
  3. IDT 信息设计工具使用
  4. 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
  5. 【转】常用数据结构及复杂度
  6. python真的那么火吗-前言、Python是真的火,还是炒得火?来看看它的前世和发展...
  7. 零基础自学python的建议-经验之谈——大学时候,我是如何零基础自学Python的?...
  8. 中国最大的python社区-python找最大值
  9. 毕业设计 基于python的网络爬虫-基于python的网络爬虫
  10. python画代码-一行Python代码画心型