python用urllib爬取百度

来源:互联网 发布:mac mini 老款拆机 编辑:程序博客网 时间:2024/06/06 02:59

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")    
urlopen(url, data, timeout) 

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,可以通过浏览器右键”审查元素”或”检查”来进行定位


这里写图片描述

定位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 = 100.0 * blocknum * blocksize / totalsize      if percent > 100:          percent = 100      print "%.2f%%"% percent  url = 'http://www.sina.com.cn'  local = 'd:\\sina.html'  urllib.urlretrieve(url, local, callbackfunc)  
原创粉丝点击