网页爬取的三种方式

 爬取的重点在于分析网页结构,以爬取淘宝网图片为例:
爬取网页有三种方式:
1.urllib.request
2.封装Request请求
3.urlretrieve直接写入硬盘
下面以第三种方法爬取xxx图片
代码如下:

#爬取网页有三种方式:urllib.request,封装Request请求,urlretrieve直接写入硬盘,下面以第三种方法爬取xxx图片
import urllib.request
'''爬取网页方法一:'''
data=urllib.request.urlopen('http://123.sogou.com').read().decode('utf-8','ignore')
#A=len(data)
'''爬取网页方法二:'''
url='http://123.sogou.com'
req=urllib.request.Request(url)
data2=urllib.request.urlopen(req).read().decode('utf-8','ignore')
#B=len(data2)
#爬取淘宝网'xxx'
import urllib.request
import re
key1="关键词"
key2=urllib.request.quote(key1) #对关键字进行编码处理
for i in range(1,10):   #获取各页
    try:        #底层网页爬取异常处理
        print("--------正在爬第"+str(i)+"页------------")
        url="https://s.taobao.com/search?q="+key2+"&s="+str((i-1)*44)    #构造网页结构
        data=urllib.request.urlopen(url).read().decode("utf-8","ignore") #ignore忽视编码错误
        pat='"pic_url":"//(.*?)"'   #正则构建图片网址
        imglist=re.compile(pat).findall(data)  #匹配每一个页面的图片网址
        for j in range(0,len(imglist)):  #循环每一个页面,并保存图片到本地硬盘
            try:
                thisimg=imglist[j]
                thisimgurl="http://"+thisimg
                localfile="D:/爬虫工程师/淘宝粽子图片/"+str(i)+"_"+str(j)+".jpg"
                urllib.request.urlretrieve(thisimgurl,filename=localfile)  
                #urlretrieve方法直接将图片网页写入本地硬盘
            except Exception as err:
                pass
    except Exception as err:
        pass

 

你可能感兴趣的:(Python语言,爬虫)