python用urllib爬取百度

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)  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值