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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题