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


python用urllib爬取百度_第1张图片

定位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)  

你可能感兴趣的:(python爬虫,python-爬虫,urllib)