#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: feng
import requests
import re
from prettytable import PrettyTable
from colorama import Fore,init,Back
def getHtmlText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
print("Wrong!!")
return ""
def getProductPrice(itl,html):
name_regx=re.compile(r'"raw_title":"(.+?)"')
bag_name=re.findall(name_regx,html)
price_regx=re.compile(r'"view_price":"(\d+?.00)"')
price_name=re.findall(price_regx,html)
for i in range(len(bag_name)):
itl.append([bag_name[i],float(price_name[i])])
return itl
def PrintAllPrice(plist):
header=("序号 价格 商品").split()
pt=PrettyTable()
pt._set_field_names(header)
plist=sorted(plist,key=lambda x:x[1])
for index,i in enumerate(plist):
pt.add_row([Fore.RED+str(index)+Fore.RESET,Fore.LIGHTCYAN_EX+str(i[1])+Fore.RESET,Back.GREEN+i[0]+Back.RESET])
print(pt)
def main():
good="iphone"#商品的全拼
depth=2#爬取的深度
start_url="https://s.taobao.com/search?q="+good
infoList=[]
for i in range(depth):
try:
url=start_url+"&s={}".format(44*i)
Text=getHtmlText(url)
getProductPrice(infoList,Text)
except:
continue
PrintAllPrice(infoList)
if __name__=="__main__":
main()
# -*- coding:utf-8 -*-
#Author: feng
import requests
import re
from prettytable import PrettyTable
from colorama import Fore,init,Back
def getHtmlText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
print("Wrong!!")
return ""
def getProductPrice(itl,html):
name_regx=re.compile(r'"raw_title":"(.+?)"')
bag_name=re.findall(name_regx,html)
price_regx=re.compile(r'"view_price":"(\d+?.00)"')
price_name=re.findall(price_regx,html)
for i in range(len(bag_name)):
itl.append([bag_name[i],float(price_name[i])])
return itl
def PrintAllPrice(plist):
header=("序号 价格 商品").split()
pt=PrettyTable()
pt._set_field_names(header)
plist=sorted(plist,key=lambda x:x[1])
for index,i in enumerate(plist):
pt.add_row([Fore.RED+str(index)+Fore.RESET,Fore.LIGHTCYAN_EX+str(i[1])+Fore.RESET,Back.GREEN+i[0]+Back.RESET])
print(pt)
def main():
good="iphone"#商品的全拼
depth=2#爬取的深度
start_url="https://s.taobao.com/search?q="+good
infoList=[]
for i in range(depth):
try:
url=start_url+"&s={}".format(44*i)
Text=getHtmlText(url)
getProductPrice(infoList,Text)
except:
continue
PrintAllPrice(infoList)
if __name__=="__main__":
main()