Python玩具总动员之爬虫篇(一):urllib
Base:
Created Monday 17 March 2014
wiki解释:http://en.wikipedia.org/wiki/Web_spider
引用WIKI上的解释,爬虫说白就是首先就是一个程序(废话..),然后这个程序能做什么?他可以抓取网页,把数据保存下来。再网上一点说,光抓取网页没啥技术含量对吧?关键困难是从网页中分析提取和整理你想要的数据,正如弱水三千只取一Piao..百度Google搜索引擎什么的技术之一就是非常牛X的爬虫吧。
在标准库中,python给我们提供了 urllib 模块,然后借助urllib模块,我们做一个这样的程序:
import urllib url = "http://www.csdn.net" print urllib.urlopen(url).read()
那么好我们需要更新程序了哈哈,把V1.0 升级到V1.1,增加功能为把抓到的网页输入到文件中,并且保存为HTML,然后浏览器打开
#-*-coding:utf-8 import urllib #导入python标准库给我们提供的urllib url = "http://www.hao123.com" #这个是我们要抓取的网页地址,一定不要忘记有http://这个符号哦 tmp_file = open("/home/yg/Code/Python/tmp.html","w") #打开文件,传过去的参数的是你路径连文件名一起 tmp_file.write(urllib.urlopen(url).read()) #urllib.urlopen()大家可以查文档,意思穿过去url,a file-like object is returned tmp_file.close() #上完厕所要冲水,打开文件要关闭 #然后用浏览器打开文件看看
import urllib url = "http://www.hao123.com" filename = "./test.html" urllib.urlretrieve(url,filename) #urllib.urlretrieve()第一个参数为url 第二个参数为文件路径和文件名 #它直接把制定网页存储到本地文件中
#-*-coding:utf-8-*- import urllib url = "http://www.hao123.com" filename = "./test.html" def reporthook(count,block_size,total_size): """ 回调函数 下载进度现实的函数 @count 已经下载的数据块的个数 是个数哦 @block_size 数据会的大小,一般都是多少多少字节哦 @totol_size 总的文件大小 有了这三个量我们就可以计算进度了哈 只要totol_size 等于 count * block_size 那就说明下载完毕了 """ per = (100.0 * count * block_size ) / total_size #per就是百分进度了 print "Download Percent: %.2f %%" % per down_log = urllib.urlretrieve(url,filename,reporthook) #reporthook是一个回调函数,就是你传函数名(其实是函数的指针,一个地址),然后它实现里面回调用你函数并传进去三个参数 print down_log
Version 1.4:是不是只能下载网页哈?能不能下载文件?咱们试一试
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。