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爬取淘宝信息的代码,大家测试后如果还有任何不明白的地方可以在下方的留言区讨论。