会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134338个问题
JAVA 全系列/第五阶段:Web全栈开发基础与Vue/HTML5(旧) 26896楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 26897楼
Python全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 26898楼

老师就是网页没有爬取完全,程序就结束了,然后我加了隐式等待和调用js,但是网页还是没有爬取完全,是不是我的逻辑方面有错误,爬取时,还会有那个提示弹窗,必须手动点掉才开始爬取,怎么在代码里就给他跳过

from selenium.webdriver.chrome.service import Service

from selenium.webdriver import Chrome

from lxml import etree

from selenium.webdriver.common.by import By

from time import sleep


def spider_huya():

    #创建驱动

    service=Service('./chromedriver.exe')

    #创建浏览器

    driver=Chrome(service=service)

    #访问网页

    driver.get('https://www.huya.com/g/lol')

    count=1

    while True:

        print('获取了第{%d}页' % count)

        count +=1

        #拖动滚动条到底部

        js='document.documentElement.scrollTop=1000'

        driver.execute_script(js)

         #设置隐式等待

        driver.implicitly_wait(20)

        #创建etree对象

        e=etree.HTML(driver.page_source)

        #提取数据

        names=e.xpath('//i[@class="nick"]/text()')

        persons=e.xpath('//i[@class="js-num"]/text()')

        sleep(3)

       

        #打印数据

        #for n,p in zip(names,persons):

             #print(f'主播名:{n} 人气:{p}')

        #获取选项卡,点击

        if driver.page_source.find('laypage_next') ==-1:

            break

        next_btn=driver.find_element(By.XPATH,'//a[@class="laypage_next"]')

        next_btn.click()

        sleep(3)

    driver.quit()

 

if  __name__=='__main__':

    spider_huya()

594d0d95d70c3aaa787599017a3c0d3.png

Python全系列/第十六阶段:Python 爬虫开发/爬虫基础 26901楼
Python全系列/第十三阶段:高并发性能怪兽-Tornado 框架/Tornado简介(旧) 26903楼
人工智能/第二阶段:人工智能基础-Python基础/Python基础语法-旧 26904楼
Python全系列/第一阶段:AI驱动的Python编程/Python入门(动画版) 26905楼

public class dsf { public static void main(String[] args) { int sum=0;//定义一个他们的和 int oddsum=0;//奇数的和 int evensum=0;//偶数的和 for (int i=0;i<=100;i++){//for循环(初始化的表达式变量;布尔表达式进行判断;迭代因子进行自增,避免会进入死循环) sum+=i;//和的值等于和加i if(i%2==0){//if语句进行判断,当i除2等于0时 evensum+=i;//打印偶数的和等于偶数的和加i }else { oddsum+=i;//打印奇数的和等于奇数的和+i } } System.out.println("100之内的数字的累加的和:"+sum); System.out.println("100之内的数字的奇数累加的和:"+oddsum); System.out.println("100之内的数字的偶数累加的和:"+evensum); int t=0;//定义一个他们的和 int t2=0;//定义偶数的和 int t3=0;//定义一个奇数的和 int c=0;//定义一个初始化的变量 while (c<=100){//布尔表达式进行判断 t+=c;//和的值加等于和加i c++;//初始化变量进行自增避免进入死循环 if (c%2==0){//if语句进行判断,当c除2时是否为0 t2+=c;//是的话打印t2的值等于t2+c }else{//否则则打印 t3+=c;//t3的值等于t3+c } } System.out.println("100之内的数字的累加的和是:"+t); System.out.println("100之内的数字的奇数累加的和是:"+t3); System.out.println("100之内的数字的偶数累加的和是:"+t2); }}100之内的数字的累加的和:5050100之内的数字的奇数累加的和:2500100之内的数字的偶数累加的和:2550100之内的数字的累加的和是:5050100之内的数字的奇数累加的和是:2601100之内的数字的偶数累加的和是:2500老师为什么两个代码得出来的答案不一致

JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 26910楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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