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

image.png


public class Z1 {
    public static void main(String[] args) {
        BiaoGe op0 = new BiaoGe(1, "百战牌鼠标", "BZ_001", 99.21, 0.9);
        BiaoGe op1 = new BiaoGe(2, "键盘侠玩偶", "WO_102", 403, 0.7);
        BiaoGe op2 = new BiaoGe(3, "实战java程序设计", "BK_001", 89.00, 0.8);
        BiaoGe op3 = new BiaoGe(4, "蔡幸牌西装", "GQ_XF_12", 700, 0.5);
        BiaoGe op4 = new BiaoGe(5, "大米牌手机", "DM_PH_13", 900, 0.3);

        BiaoGe[] ops =new BiaoGe[5];
        ops[0]=op0;
        ops[1]=op1;
        ops[2]=op2;
        ops[3]=op3;
        ops[4]=op4;
        for (int a=0;a<ops.length;a++){
            System.out.println(ops[a].getId()+"\t"+ops[a].getName()+"\t"+ops[a].getModelNumber()+"\t"+ops[a].getPrice()+"\t"+ops[a].getDiscount());
        }

        System.out.println("下面是静态初始化");
        BiaoGe[] ops1={op0,op1,op2,op3,op4};
        for (int b=0;b<ops.length;b++){
            System.out.println(ops1[b].getId()+"\t"+ops1[b].getName()+"\t"+ops1[b].getModelNumber()+"\t"+ops1[b].getPrice()+"\t"+ops1[b].getDiscount());
        }

        //在创建一个方法,遍历改写toString()方法打印;

        System.out.println("在创建一个方法,遍历改写toString()方法打印;");
        BiaoGe[] s1 ={op0,op1,op2,op3,op4};
        for (int i=0;i< s1.length;i++) {
            System.out.println(s1[i]);
        }


    }
}

    class BiaoGe{
        private int id;
        private String name;
        private String ModelNumber;
        private double price;
        private double discount;


        BiaoGe(){

        }


        public BiaoGe(int id, String name, String modelNumber, double price, double discount) {
            this.id = id;
            this.name = name;
            this.ModelNumber = modelNumber;
            this.price = price;
            this.discount = discount;

        }

        @Override
        public String toString() {
            return "ID:"+id+"\t名称:"+name+"\t 型号:"+ModelNumber+"\t价格:"+price+"\t折扣"+discount;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getModelNumber() {
            return ModelNumber;
        }

        public void setModelNumber(String modelNumber) {
            ModelNumber = modelNumber;
        }

        public double getPrice() {
            return price;
        }

        public void setPrice(double price) {
            this.price = price;
        }

        public double getDiscount() {
            return discount;
        }

        public void setDiscount(double discount) {
            this.discount = discount;
        }
    }

一维数组怎么用嵌套循环打印?????写了半天发现打出来不对,,,,空白

JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 27647楼
WEB前端全系列/第十九阶段:Vue2知识体系(旧)/Vue基础知识 27648楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 27650楼
Python 全系列/第一阶段:Python入门/序列 27651楼

'''测试一个经典的GUI程序的写法,使用面向对象的方式'''
from tkinter import *
from tkinter import  messagebox


class Application(Frame):
    '''一个经典的GUI程序的类的写法'''
    def __init__(self,master=None):
        super().__init__(master)#super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.pack()

        self.creatWidget()  # 通过这种方式进行调用

    def creatWidget(self):
        '''创建新组建'''
        self.label01=Label(self,text="百战程序员",width=10,height=2,
                           bg="black",fg="white")
        self.label01.pack()
        self.label02=Label(self,text="百战程序员",width=10,height=2,
                           bg="pink",fg='white',font=('楷体',30))
        self.label02.pack()

        #显示图像
        global photo
        photo = PhotoImage(file="cyx.gif")#创建一个图片对象

        self.label03=Label(self,image=photo)#利用image参数对这个标签进行赋值
        self.label03.pack()

        self.label04=Label(self,text="sd\nsdf\n",
                           borderwidth=1,relief="solid",justify="right")
        self.label04.pack()

        self.but01=Button(self,text="quit",command=root.destroy())
    def songhua(self):
        messagebox.showinfo("pythonGUI/florwer","99")  #第一个是框框的标题,第二个是框框里的内容

if __name__=="__main__":
    root=Tk()

    app=Application(master=root)
    root.geometry('200x100+300+300')
    root.mainloop()

老师,我想加一个退出的button,但是这个一直报错,请问是为什么

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 27652楼
WEB前端全系列/第一阶段:HTML5+CSS3模块/HTML5基础元素 27654楼

from tkinter import *
from tkinter import messagebox
class Application(Frame):
    def __init__(self,master=None):
        super().__init__(master)
        self.master=master
        self.pack()
        self.createWidget()
    def createWidget(self):
        #创建一个标签(组件)
        self.label01=Label(self,text="百战程序员",width=10,height=2
                           ,bg="black",fg="white")
        self.label01.pack()
        self.label02=Label(self,text="姬昊余",width=15,height=1,
                           bg="red",fg="blue",font=("宋体","30"))
        self.label02.pack()

        #显示图像
        global photo #因为photo为局部变量 必须声明为全局变量,否则执行完语句,图像自动销毁,不会显示
        photo=PhotoImage(file="image/123.gif")#先创建一个photo容器
        self.label03=Label(self,image=photo)
        self.label03.pack()

        #显示多行文本
        self.label04=Label(self,text="姬昊余\n吕倩倩",borderwidth="10",relief="groove"
                           ,justify="left")
        self.label04.pack()
        #justify文本对齐方式  relief边框样式  borderwidth边框宽度

        #创建一个送花按钮
        self.btn01=Button(root)
        self.btn01["text"]="点击送花"
        self.btn01["command"]=self.songhua
        #songhua后边加括号就成了自动执行 不加括号为触发事件
        self.btn01.pack()
    def songhua(self):
        messagebox.showinfo("送花","送你一朵小花花")

root=Tk()
root.geometry("400x200+200+300")
root.title("一个经典的GUI")
app=Application(root)
root.mainloop()

老师 你说 self.btn=Button(root)和self.btn=Button(self)的区别是 这两个按钮在不同的父组件里,那这两个父组件有什么区别,代码底下不是 app=Application(root) 这个app为什么是个父组件


Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 27655楼
JAVA 全系列/第九阶段:SpringBoot与MybatisPlus/Spring Boot旧 27656楼

代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
options=webdriver.ChromeOptions()
options.add_argument('--headless')
chrome=webdriver.Chrome(options=options)
url="https://www.lagou.com/zhaopin/Python/?filterOption=3&sid=9146e755a7bf4f6dac59edd3e7d43127"
sleep(2)
chrome.get(url)
html=chrome.page_source
print(html)
while True:
    job = chrome.find_elements(By.XPATH, '//div[@class="p_top"]//h3')
    point = chrome.find_elements(By.XPATH, '//span[@class="add"]//em')
    salary = chrome.find_elements(By.XPATH, '//div[@class="li_b_l"]//span[@class="money"]')
    company = chrome.find_elements(By.XPATH, '//div[@class="company_name"]/a')
    industry = chrome.find_elements(By.XPATH, '//div[@class="industry"]')
    n = len(job)
    with open(r"job5.txt", "a", encoding="utf-8") as f:
        for i in range(n):
            f.write((job[i].text).strip())
            f.write("\t")
            f.write((point[i].text).strip())
            f.write("\t")
            f.write((salary[i].text).strip())
            f.write("\t")
            f.write((company[i].text).strip())
            f.write("\t")
            f.write((industry[i].text).strip())
            f.write("\n")
    if html.find('page_no') != -1:
        chrome.find_element_by_class_name('page_no').click()
        sleep(3)
    else:
        break
chrome.quit()

运行结果:

高级爬虫工程师()  杭州滨江区 丁香园    医疗丨健康企业服务 轮及以上 人
开发工程师    上海长宁区 信飞数科信用飞首付游   科技金融 轮 人
开发工程师    上海徐汇区 问卷网众言科技   工具类产品 轮 人
开发   上海徐汇区 问卷网众言科技   工具类产品 轮 人
开发工程师    北京知春路 天眼查    数据服务|咨询 不需要融资 人
开发工程师    东莞东莞市东莞美信   汽车丨出行 上市公司 人以上
开发工程师    杭州余杭区 和骏出行   移动互联网 天使轮 人
开发工程师    上海徐汇区 上海江煦信息科技   软件服务|咨询 不需要融资 人
开发工程师    杭州西湖区 涂鸦智能   物联网智能硬件 轮 人以上
高级开发工程师  上海长宁区 信飞数科信用飞首付游   科技金融 轮 人
开发工程师    上海张江  仑动科技   企业服务人工智能 未融资 少于人
开发工程师    广州白云区 东莞美信   汽车丨出行 上市公司 人以上
开发工程师    深圳前海  易博天下   软件服务|咨询 上市公司 人
开发工程师    广州海珠区 派客朴食   移动互联网电商 不需要融资 人
上海浦东新北纬三十度  电商平台 未融资 人
高级爬虫工程师() 杭州滨江区 丁香园    医疗丨健康企业服务 轮及以上 人
开发工程师    上海长宁区 信飞数科信用飞首付游   科技金融 轮 人
开发工程师    上海徐汇区 问卷网众言科技   工具类产品 轮 人
开发   上海徐汇区 问卷网众言科技   工具类产品 轮 人
开发工程师    北京知春路 天眼查    数据服务|咨询 不需要融资 人
开发工程师    东莞东莞市东莞美信   汽车丨出行 上市公司 人以上
开发工程师    杭州余杭区 和骏出行   移动互联网 天使轮 人
开发工程师    上海徐汇区 上海江煦信息科技   软件服务|咨询 不需要融资 人
开发工程师    杭州西湖区 涂鸦智能   物联网智能硬件 轮 人以上
高级开发工程师  上海长宁区 信飞数科信用飞首付游   科技金融 轮 人
开发工程师    上海张江  仑动科技   企业服务人工智能 未融资 少于人
开发工程师    广州白云区 东莞美信   汽车丨出行 上市公司 人以上
开发工程师    深圳前海  易博天下   软件服务|咨询 上市公司 人
开发工程师    广州海珠区 派客朴食   移动互联网电商 不需要融资 人
上海浦东新北纬三十度  电商平台 未融资 人

问题:

老师请问一下,我使用的是selenium来爬取拉勾网上的关于python的职位,第一页中的数据是从高级python爬虫工程师(Insight)15k-25k到python上海.浦东新区15k-30k,当我爬取完一页以后我就用chrome中的click方法点击进入下一页继续爬取,我使用的是while True循环来实现的,可是为什么当我点击进入下一页以后爬取的还是第一页的15条数据,每次都是在重复爬取第一页的15条数据,麻烦老师帮我看看我的代码哪里出错了?

Python 全系列/第十六阶段:Python 爬虫开发/爬虫反反爬- 27657楼
Python 全系列/第一阶段:Python入门/编程基本概念 27659楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 27660楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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