首页 > 解决方案 > 以 10 为基数的 int() 的无效文字:'Last'

问题描述

执行 Python 代码时出现此错误。代码运行完美,直到这个打印语句。我究竟做错了什么?

print("Category Loaded")

            # Find pagination if any
            lis=soup.select(".pagination li")   
            if len(lis)>0:
                #get last page num
                last_page=int(lis[-1].get_text().strip())                   
                page_num=1
                # Loop to get all pages
                while True:                                                 
                    print("Loading Page : "+str(page_num))

标签: pythonweb-scraping

解决方案


您正在尝试使用此行将值转换为整数:

last_page=int(lis[-1].get_text().strip())

如果您要转换的值(列表中最后一个元素的文本)不仅仅由数字组成,那么这将不起作用。

您的值是“最后一个”,而不是任何int()可以使用的值,因此您会收到错误消息。我想soup.select(".pagination li")除了你想要的数字之外,还会返回“第一个”、“上一个”、“下一个”和“最后一个”。您需要在列表上进行更多清理以仅显示数字。


推荐阅读