会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133940个问题

shop.zip

老师,这里面有两个导入的错误,但我都是按照课程导入的,怎么会出错呢

Python 全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 29896楼

from fake_useragent import UserAgent
import requests
from lxml import etree  #解析库


def get_html(url):
    '''
    param url:要爬取的地址
    return:返回html
    '''

    headers={"User-Agent":UserAgent().chrome}
    resp=requests.get(url,headers=headers) #发送请求
    if resp.status_code ==200:
        resp.encoding='utf-8'  #设置字符集
        return resp.text
    else:
        return None

def parse_list(html):
    '''
    param url:传递进来一个有电影列表的html
    return:返回一个电影列表的url
    '''
    # if html:    #html在有值的情况下在做解析
    e=etree.HTML(html)
    list_url=['http://maoyan.com{}'.format(url) for url in e.xpath('//div[@class="movie-item-hover"]/a/@href')]
    return list_url

def pares_index(html):
    '''
    param url:传递进来一个有电影具体信息的html
    return:提取好的电影具体信息
    '''
    e = etree.HTML(html)
    name = e.xpath('//h1[@class="name"]/text()')
    type = e.xpath('//li[@class="ellipsis"][1]/a/text()')
    content = e.xpath('//span[@class="dra"]/text()')

    return {"name":name,"type":type,"content":content}

#     actors=e.xpath('')
#     actors=format_data(actors)

# 有重复的演员名字,需要去重
# def format_data(actors):
#     actor_set=set()
#     for actor in actors:
#         actor_set.add(actor.strip())  #strip去空格
#         return actor_set

def main():

    '''控制上述方法的实施,分配相应的url'''
    num = int(input('请输入多少页:'))
    for page in range(num):
        url="https://maoyan.com/films?showType=1&offset={}".format(page*30)

        list_html=get_html(url)  #发送请求
        list_url=parse_list(list_html)  #解析list_html,返回list_url每个电影的信息
        for url in list_url:
            info_html=get_html(url)
            movie = pares_index(info_html)
            print(movie)

if __name__ =='__main__':
    main()

老师,这个代码只运行到请输入多少页,然后就运行结束了。哪里出错了?

Python 全系列/第十六阶段:Python 爬虫开发/爬虫反反爬- 29897楼
Python 全系列/第四阶段:函数式编程和核心特性/函数式编程核心(高阶函数、闭包等) 29898楼

maven_demo2.zip 老师报500了 找了半天没找到哪里有问题 能帮我看一下吗

图片.png


JAVA 全系列/第七阶段:项目管理与SSM框架/Maven 29899楼
Python 全系列/第一阶段:AI驱动的Python编程/函数和内存分析 29900楼
Python 全系列/ 第十五阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 29901楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 29902楼

#coding=UTF-8

from threading import Thread, Event
from time import sleep
from random import randint


def door():
    global state
    while True:
        if even.is_set():#如果even事件为真,则执行
            print('我是门:门开着,可以通行~')
            sleep(1)
        else:
            print('我是门:门关了~请刷卡!')
            state = 0#门已关闭,开门循环重置为0
            even.wait()#even事件为等待,进程暂停
        if state > 3:#state在3次循环后
            print('我是门:超过3 秒,门自动关门')
            even.clear() #even事件为假,所有even.wait()发挥作用,将进程暂停
        state +=1#循环一次,state+1,控制门开启时间
        sleep(1)#线程暂停1秒,控制循环时间
def person():
    global state
    n = 0#人员编号
    while True:
        if even.is_set():
            print('我是人:门开着:{}号进入'.format(n))
        else:
            even.set()#将even事件标记为真
            state = 0#开门循环重置为0
            print('我是人:门关着,{}号人刷卡进门'.format(n))
        n += 1
        sleep(randint(1, 10))#随机1-10米秒来一个人,模拟刷卡
if __name__ == '__main__':
    state = 0
    even = Event()
    even.set()
    d = Thread(target=door)
    d.start()
    p = Thread(target=person)
    p.start()

老师,在执行的时候应该先提示

我是门:门关了~请刷卡!

但是我的这个程序,直接就是开着门的,请帮忙看看问题在哪里,谢谢

图片.png

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 29903楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 29905楼
Python 全系列/ 第十五阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 29906楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 29908楼
JAVA 全系列/第十四阶段:分布式文件存储与数据缓存/Nginx 29910楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637