天天看点

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")    
           

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爬取百度爬取在线网站

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

继续阅读