python3爬取淘宝信息代码分析
#encoding:utf-8 importre#使用正则匹配想要的数据 importrequests#使用requests得到网页源码
这个函数是用来得到源码
#得到主函数传入的链接 defgetHtmlText(url): try:#异常处理 #得到你传入的URL链接设置超时时间3秒 r=requests.get(url,timeout=3) #判断它的http状态码 r.raise_for_status() #设置它的编码encoding是设置它的头部编码apparent_encoding是从返回网页中分析它的编码格式 r.encoding=r.apparent_encoding #返回源代码 returnr.text except:#发生异常返回空 return''
这个函数使用来解析你的源代码获取你想要的数据
#解析你的网页信息 defparsePage(ilt,html): #异常处理 try: #找到书包的价格 plt=re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) #找到书包的名称 tlt=re.findall(r'\"raw_title\"\:\".*?\"',html) #找到书包的地址 add=re.findall(r'\"item_loc\"\:\".*?\"',html) #找到书包的图片链接 img=re.findall(r'\"pic_url\"\:\".*?\"',html) #得到这个内容放入主函数中的列表 foriinrange(len(plt)): price=eval(plt[i].split(':')[1]) title=eval(tlt[i].split(':')[1]) address=eval(add[i].split(':')[1]) imgs=eval(img[i].split(':')[1]) ilt.append([price,title,address,imgs]) except:#放生异常输出空字符串 print('')
#得到主函数传入的列表 defprintGoodsList(ilt): #每个列之间用tplt的放是隔开 tplt='{:4}\t{:8}\t{:16}\t{:32}' #这个是整个的标题 print(tplt.format('序号','价格','商品名称','地址','图片地址')) count=0#统计有多少的序号 forginilt: count=count+1#循环一遍加一 print(tplt.format(count,g[0],g[1],g[2]),g[3])#输出你得到的数据
#定义主函数main defmain(): goods='书包'#你要搜索的东西 depth=2#你想要得到几页的东西 start_url='https://s.taobao.com/search?q='+goods#你搜索的网址加上你的搜索东西 infoList=[]#自定义的空列表用来存放你的到的数据 foriinrange(depth):#循环你的页数 try:#异常处理 url=start_url+'&s'+str(44*i)#得到你的网址 html=getHtmlText(url)#得到url传入到你要得到url的函数中 parsePage(infoList,html)#得到你的html源码放入解析的网页中 except:#发生异常跳过 continue #把列表中的数据放入解析的函数中 printGoodsList(infoList)
#代码调试片段 if__name__=='__main__': main()#调用主函数
以上就是经过小编测试过的用python3爬取淘宝信息的代码,大家测试后如果还有任何不明白的地方可以在下方的留言区讨论。