1、首先调用urllib2库的URLopen的方法,传入一个URL,urlopen一般接受三个参数,它的参数如下
#coding=utf-8
import os
import urllib
import httplib2
import webbrowser as web
#爬取在线网站
url = "http://www.baidu.com/"
content = urllib.urlopen(url).read()
open("baidu.html","w").write(content)
#浏览求打开网站
web.open_new_tab("baidu.html")
2、第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。
第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT。
第一个参数URL是必须要传送的,在这个例子里面我们传送了百度的URL,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面。
response = urllib2.urlopen("http://www.baidu.com")
print response.read()
3、 *然后是需要下载图片,这里需要学会找到图片的URL,如下图百度的LOGO,可以通过浏览器右键”审查元素”或”检查”来进行定位
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zZihmVIVWdWJDZ1Z0RaZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMwUzNxEDNxETMwgDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
定位URL后,再通过函数urlretrieve()进 #coding = utf-8
import os
import urllib
import httplib2
import webbrowser as web
爬取在线网站
url = “http://www.baidu.com/”
content = urllib.urlopen(url).read()
open(“baidu.html”,”w”).write(content)
#浏览求打开网站
web.open_new_tab(“baidu.html”)
#下载图片 审查元素
pic_url = “https://www.baidu.com/img/bd_logo1.png”
pic_name = os.path.basename(pic_url) #删除路径获取图片名字
urllib.urlretrieve(pic_url, pic_name)
#本地文件
content = urllib.urlopen(“first.html”).read()
print content
#下载图片 审查元素
pic_url = “imgs/bga1.jpg”
pic_name = os.path.basename(pic_url) #删除路径获取图片名字
urllib.urlretrieve(pic_url, pic_name) **重点知识:
urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。
urlretrieve方法直接将远程数据下载到本地。
如果需要显示进度条,则使用下面这段代码:**
urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。
urlretrieve方法直接将远程数据下载到本地。
如果需要显示进度条,则使用下面这段代码:
import urllib
def callbackfunc(blocknum, blocksize, totalsize):
'''''回调函数
@blocknum: 已经下载的数据块
@blocksize: 数据块的大小
@totalsize: 远程文件的大小
'''
percent = * blocknum * blocksize / totalsize
if percent > :
percent =
print "%.2f%%"% percent
url = 'http://www.sina.com.cn'
local = 'd:\\sina.html'
urllib.urlretrieve(url, local, callbackfunc)