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

import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
from time import sleep

def get_list():
    num = int(input("请输入要获取多少页数据:"))
    for i in range(num):
        url = "https://maoyan.com/films?showType=3&offset={i*30}"
        headers = {'User-Agent':UserAgent().chrome}
        resp = requests.get(url,headers=headers)
        soup = BeautifulSoup(resp.text,'lxml')
        all_a = soup.select('div > a[data-act="movies-click"]')
        print(all_a)
        return [a.get('href') for a in all_a]

# 格式化演员集合,去重
def format_actors(a_list):
    actor_set = set()
    for a in a_list:
        actor_set.add(a.text.strip())       # 需要a标签里的文本,去除空格
    return actor_set

def start():
    all_href = get_list()
    for a in all_href:
        sleep(2)
        url = f"https://maoyan.com{a}"
        headers = {'User-Agent':UserAgent().chrome}
        resp = requests.get(url,headers=headers)
        soup = BeautifulSoup(resp.text,'lxml')

        name = soup.select('h1.name')[0].text.strip()
        types = soup.select('li.ellipsis')[0].text.strip()
        actors_m = soup.select('li.celebrity.actor > div > a')
        actors = format_actors(actors_m)
        print(f'电影名:{name}  电影类型:{types}   演员:{actors}')

if __name__ == '__main__':
    start()

老师,帮我看看这是为什么?我的输出没有结果!

图片.png

Python 全系列/第十四阶段:Python 爬虫开发/爬虫基础(旧) 17388楼

图片.png

图片.png

一放大就成了这样,什么原因呢?

package demo;

import javax.swing.*;
import java.awt.*;

/**
 * JFrame 是窗口类
 */

public class BallGame extends JFrame {
    //加载图片
    Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.png");
    double x = 200;
    double y = 200;
    double thita = 3.14/3;

    //画图
    public void paint(Graphics g) {
        System.out.println("窗口被画了一次");
        g.drawImage(desk, 0, 0, null);
        g.drawImage(ball, (int)x,(int)y, null);

        x = x + 2 * Math.cos(thita);
        y = y + 2 * Math.sin(thita);

        if(x > 856 - 40 - 30 || x < 40){
            thita = 3.14 - thita;
        }
        if(y > 501 - 40 || y < 40 + 40){
            thita = - thita;
        }
    }
    //绘制窗口
    void launchFrame(){
        //设置窗口大小
        setSize(856,501);
        //设置窗口位置。屏幕左上角为原点
        setLocation(300,300);
        //设置窗口可视化
        setVisible(true);
        while (true){
            repaint();
            try {
                Thread.sleep(40);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        System.out.println("游戏开始了!……");
        BallGame ballGame = new BallGame();
        ballGame.launchFrame();
    }
}


JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 17392楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:商品详情展示_详情缓存及同步 17393楼

老师这个是什么问题

package com.bjxst;

public class MyDoublyLinkedList<E> implements MyList<E> {
    private Node head;
    private Node tail;
    private int size;

    @Override
    public void add(E element) {
        this.linkedLast(element);

    }
    private void linkedLast(E element){
        //首先获取尾部节点
        Node t = this.tail;
        //创建节点对象
        Node node1 =new Node(t,null,element);

        node1=this.tail;
        if(t==null){
            node1 =this.head;
        }else{
            node1 = t.next;
        }
        this.size++;
    }

    @Override
    public E get(int index) {
        //对Index做合法性校验
        this.checkIndex(index);

        //根据节点对象查找位置
        Node<E> node = this.getNode(index);
        return node.item;

    }
    private void checkIndex(int index){
        if(!(index>=0&&index<this.size)){
            throw new IndexOutOfBoundsException("index"+index+"size"+size);
        }
    }
    private Node getNode(int index){
        if (index<(this.size>>1)){
            Node node = this.head;
            for (int i=0;i<index;i++){
                node = node.next;
            }
            return node;
        }else{
            Node node = this.tail;
            for (int i=this.size-1;i>index;i--){
                node = node = node.prev;
            }
            return node;
        }




    }

    @Override
    public int size() {
        return this.size;
    }

    @Override
    public E remove(int index) {
        //对index进行合法性校验
        this.checkIndex(index);
        //根据指定位置获取节点对象
        Node<E> node = this.getNode(index);
        //获取节点对象中的元素
        E item = node.item;
        //判断当前节点是否为头节点
        if(node.prev ==null){
            node.next=this.head;

        }else{
            node.prev.next = node.next;

        }
        //判断当前节点是否为尾结点
        if(node.next==null){
            node.prev = this.tail;
        }else{
            node.next.prev = node.prev;
        }
        node.next =null;
        node.prev= null;
        node.item =null;

        this.size--;
        return item;


    }
    //创建节点内部类
    class Node<E>{
        E item;
        Node<E> prev;
        Node<E> next;
        Node(Node<E> prev,Node<E> next,E item){
            this.prev = prev;
            this.next=next;
            this.item = item;
        }
    }
    public void addFirst(E element){
        this.linkFirst(element);
    }
    private void linkFirst(E element){
        //获取头结点对象
        Node head = this.head;
        Node node1 = new Node(null,head,element);
        //将新节点定为头节点
        node1 =this.head;

        if(head==null){
            node1 = this.tail;
        }else{
            node1=head.prev;
        }
        this.size++;
    }
    public void addLast(E element){
        this.linkedLast(element);
    }

    public static void main(String[] args) {
        MyList<String> myList = new MyDoublyLinkedList<>();
        myList.add("a");
        myList.add("b");
        myList.add("at");
        myList.add("e");
        myList.add("e");



        System.out.println(myList.remove(3));
    }
}

屏幕截图 2021-08-30 093615.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 17394楼

package com.bjxst;

public class MyDoublyLinkedList<E> implements MyList<E> {
    private Node head;
    private Node tail;
    private int size;

    @Override
    public void add(E element) {
        this.linkedLast(element);

    }
    private void linkedLast(E element){
        //首先获取尾部节点
        Node t = this.tail;
        //创建节点对象
        Node node1 =new Node(t,null,element);

        node1=this.tail;
        if(t==null){
            node1 =this.head;
        }else{
            node1 = t.next;
        }
        this.size++;
    }

    @Override
    public E get(int index) {
        //对Index做合法性校验
        this.checkIndex(index);

        //根据节点对象查找位置
        Node<E> node = this.getNode(index);
        return node.item;

    }
    private void checkIndex(int index){
        if(!(index>=0&&index<this.size)){
            throw new IndexOutOfBoundsException("index"+index+"size"+size);
        }
    }
    private Node getNode(int index){
        if (index<(this.size>>1)){
            Node node = this.head;
            for (int i=0;i<index;i++){
                node = node.next;
            }
            return node;
        }else{
            Node node = this.tail;
            for (int i=this.size-1;i>index;i--){
                node = node = node.prev;
            }
            return node;
        }




    }

    @Override
    public int size() {
        return this.size;
    }

    @Override
    public E remove(int index) {
        //对index进行合法性校验
        this.checkIndex(index);
        //根据指定位置获取节点对象
        Node<E> node = this.getNode(index);
        //获取节点对象中的元素
        E item = node.item;
        //判断当前节点是否为头节点
        if(node.prev ==null){
            node.next=this.head;

        }else{
            node.prev.next = node.next;

        }
        //判断当前节点是否为尾结点
        if(node.next==null){
            node.prev = this.tail;
        }else{
            node.next.prev = node.prev;
        }
        node.next =null;
        node.prev= null;
        node.item =null;

        this.size--;
        return item;


    }
    //创建节点内部类
    class Node<E>{
        E item;
        Node<E> prev;
        Node<E> next;
        Node(Node<E> prev,Node<E> next,E item){
            this.prev = prev;
            this.next=next;
            this.item = item;
        }
    }
    public void addFirst(E element){
        this.linkFirst(element);
    }
    private void linkFirst(E element){
        //获取头结点对象
        Node head = this.head;
        Node node1 = new Node(null,head,element);
        //将新节点定为头节点
        node1 =this.head;

        if(head==null){
            node1 = this.tail;
        }else{
            node1=head.prev;
        }
        this.size++;
    }
    public void addLast(E element){
        this.linkedLast(element);
    }

    public static void main(String[] args) {
        MyList<String> myList = new MyDoublyLinkedList<>();
        myList.add("a");
        myList.add("b");
        myList.add("at");
        myList.add("e");
        myList.add("e");



        System.out.println(myList.remove(3));
    }
}

屏幕截图 2021-08-30 093615.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 17395楼
Python 全系列/第一阶段:Python入门/控制语句 17397楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 17398楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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