淘宝商品信息抓取
#-*-coding:utf8-*-.# 1提交商品搜索请求,循环获取页面
# 2对每一个页面提取商品名称和价格信息
# 3将信息输出到屏幕上
import requests
import re
#获取页面
def getHTMLText(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding#将对文本中解析的编码替换整体编码
return r.text
except:
return ''
print('')
#对每一个获取的页面进行解析
def parserPage(ilt,html):
try:
plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
for i in range(len(plt)):
#eval()函数可去掉获得的数据的最外层的引号去掉
price = eval(plt.split(':')[1])
title = eval(tlt.split(':')[1])
ilt.append(,title])
except:
print('dd')
#输出商品信息
def printGoodsList(ilt):
#打印模版
tplt = "{:4}\t{:8}\t{:16}"
#打印输出表头
print(tplt.format("序号",'价格','商品名称'))
count = 0
for g in ilt:
count = count + 1
print(tplt.format(count,g[0,g[1]))#序号,价格,名称
print('')
#定义爬取深度
def main():
goods = input('请输入您要的商品名称:')
try:
depth = int(input('请输入您要获取的页面数:'))
except:
print('请输入大于0的正整数来表示页数!')
start_url ='https://s.taobao.com/search?q={}'.format(goods)
infoList =[]
#对每一个页面进行单独的访问和处理
for i in range(depth):
try:
#对每一个url链接进行设计
url = start_url + '&s' + str(44+i)
html = getHTMLText(url)
#处理每个页面的解析过程
parserPage(infoList,html)
except:
continue
printGoodsList(infoList)
main()
代码的注释都写上的,还有不明白的地方请说指出
File "C:/Users/Administrator/PycharmProjects/untitled1/tb.py", line 44
print(tplt.format(count,g))#序号,价格,名称
^
SyntaxError: invalid syntax
进程已结束,退出代码1
又见强大的PYTHON 我还以为是抓的商品详情页 赞一个
感谢分享 不知道如何使用,俺是小白 哎,以前我也学习了一段时间Python没有坚持下去。 下载了python3.6,运行下程序看看,我是第一次接触这个,听别人说很强大的。 楼主这是用什么语言写的 我是不是已经脱离时代了
感谢分享 大哥,能教教我吗?