文章目录
- 一、分析
- 二、代码
- 三、效果
一、分析
》》 第一页时
》》第二页时s=48,第三页时s=96(每页为48的倍数)
》》当q=外套时(q为关键字)
》》用于每页图片的正则表达目标
二、代码
导入请求、报错模块&正则表达式类库
from urllib import request,error
import re
定义搜索词并将搜索词转码,防止报错
key_name=request.quote("笔记本电脑")
定义函数,将爬到的每一页的商品url写入到文件
def savefile(data):path="C:\\Users\\Administrator\\Desktop\\taobao_url.txt"file=open(path,"a")file.write(data+"\n")file.close()
外层for循环控制爬取的页数 将每页的url写入到本地
for p in range(0,6):
拿到每页urlurl="https://s.taobao.com/search?q=" + key_name + "&s=" + str(p*48)
拿到每页源码data1=request.urlopen(url).read().decode("utf-8")
调用函数savefile,将每页url存入到指定pathsavefile(url)#定义匹配规则pat='pic_url":"//(.*?)"'#匹配到的所有图片urlimg_url=re.compile(pat).findall(data1)print(img_url)#内层for循环将所有图片写到本地for a_i in range(0,len(img_url)):this_img=img_url[a_i]this_img_url="http://"+this_img#每张图片的urlprint(this_img_url)#将每张图片写到本地#定义存取本地图片路径【retrieve()不会再本地建立文件夹因此需要手建】img_path="C:\\Users\\Administrator\\Desktop\\taobao_img\\" + str(p)+
str(a_i)+".jpg"request.urlretrieve(this_img_url,img_path)