爬取的重点在于分析网页结构,以爬取淘宝网图片为例:
爬取网页有三种方式:
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进行网页爬取的三种方式:urllib.request、封装Request请求以及urlretrieve直接保存到硬盘。重点探讨了如何分析网页结构并实施爬取。
4231

被折叠的 条评论
为什么被折叠?



