python for循环中的函数只能运行一次?

**这是源码,奇了怪了,最后那个for循环中的函数run()只能运行一次,求大神指点**
刚才有个大神回复了还是有点问题,一不小心把问题删除了,重新发布一下,不好意思

#coding=utf8
import itchat
import time
import re
import xian

def run(url):

    xian.parse(url)
    
    itchat.auto_login(hotReload=True)
    
    users = itchat.search_friends(name='risk')                  #获取对方UserName,返回一个列表
    print('========================================================================')
    user = users[0]['UserName']                                 #提取指定UserName
    print(user)
    
    f = open('/Users/Air/itchat/data2.txt')
    lines = f.readlines()                                           #读取全部内容
    print(lines)
    
    for i in range(100):
    itchat.send(lines[i], toUserName=user)                 #UserName需要用上面获取的自己修改
    
    print("Success")
    f.close()
    itchat.run()
    
for x in range(1,5):

    url1 = 'https://m.taobao.com/list/list.htm?'
    run(url1)
    time.sleep(10)
阅读 8.5k
2 个回答

我估计是run里面最后的itchat.run()使得itchat服务被挂起了,由于挂起服务,所以第一次调用run()的时候无法跳出,导致后面几次for无法继续运行下去。

itchat.run会挂起,把itchat.autologin和itchat.run提到外面来,然后起个子线程来运行你自己的run函数,不过itchar.run必须放到子线程启动之后

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题