sinat_35361413 2017-08-13 16:58 采纳率: 0%
浏览 1379

Python排序算法问题,我搞了一晚上 真的弄不懂?

import re
import requests
from operator import itemgetter
url='https://s.taobao.com/search?q=%E7%B1%B36&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170813'
def getHtmlText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ''
def parsePage(ilt,html):

try:
    plt=re.findall(r'"view_price":"[\d.]*"',html)
    tlt=re.findall(r'"raw_title":".*?"',html)




    for i in range(len(plt)):
            price=eval(plt[i].split(':')[1])
            title = eval(tlt[i].split(':')[1])
            ilt.append([price,title])




    ilt=sorted(ilt,key=itemgetter(0))
    print(ilt)




except:
    print('错误')

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]))

def main():
goods='小米6'
depth=1
start_url='https://s.taobao.com/search?q='+goods
infoList=[]

for i in range(depth):
    try:
        url=start_url+'&s='+str(44*i)
        html=getHtmlText(url)
        parsePage(infoList,html)
    except:
        pass
printGoodsList(infoList)

main()

初学Python 求大家帮帮我 非常感谢

我明明已经对ilt进行排序print(ilt)是正确的为什么到主函数中运行又不排序了 ,
怎么解决啊 谢谢大家 万分感谢 能帮帮我
图片说明

  • 写回答

1条回答

  • zt3032 2017-08-14 10:45
    关注

    python的函数传参是值传递!所以改的只是函数里面的值,可以用return的方式返回!或者定义全局变量!

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现