Python 3.x: 从页面导航部分找到最大的数字?
Python 3.x: finding the biggest number from page navigation section?
我正在创建一个程序来从页面导航器中获取最大的数字 bar.I 非常接近完成 program.But 因为我刚开始第一次编码 3 天,我我找不到这里的缺陷。
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
#List for extended links to the base url
links = ['Link_1/','Link_2/','Link_3/']
#Function to find out the biggest number present in the page navigation
section.Every element before 'Next→' is consist of the upper limit
def page_no():
bs = soup(html, "html.parser")
max_page = bs.find('a',{'class':'next page-numbers'}).findPrevious().text
print(max_page)
#url loop
for url in links:
my_urls ='http://www.example.com/category/{}/'.format(url)
page_no()
# opening up connection,grabbing the page
uClient = uReq(my_urls)
page_html = uClient.read()
uClient.close()
错误:
Traceback (most recent call last):
line 20, in <module> page_no()
line 14, in page_no
bs = soup(html, "html.parser")
NameError: name 'html' is not defined`
我试图在不创建函数的情况下创建这个程序,但它只是返回列表中最后一个元素的值而不是所有数字。
困惑:
混淆了元素的顺序 def page_no()
、 #Url Loop
和 # opening up connection,grabbing the page
(我可能错了)
提前致谢。
页面导航器示例:
1 2 3 … 15 Next →
您正在尝试在抓取页面之前对其进行解析。
移动这条线
page_no()
到最后,在您抓取页面之后。但即便如此,您将 "grabbed page" 命名为 page_html
,但在 page_no()
中您正在寻找另一个名称 html
。所以你也可以尝试改变它,替换
bs = soup(html, "html.parser")
和
bs = soup(page_html, "html.parser")
P.S,您还有其他问题,例如代码中的缩进问题,您也必须解决这些问题才能正常工作
我正在创建一个程序来从页面导航器中获取最大的数字 bar.I 非常接近完成 program.But 因为我刚开始第一次编码 3 天,我我找不到这里的缺陷。
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
#List for extended links to the base url
links = ['Link_1/','Link_2/','Link_3/']
#Function to find out the biggest number present in the page navigation
section.Every element before 'Next→' is consist of the upper limit
def page_no():
bs = soup(html, "html.parser")
max_page = bs.find('a',{'class':'next page-numbers'}).findPrevious().text
print(max_page)
#url loop
for url in links:
my_urls ='http://www.example.com/category/{}/'.format(url)
page_no()
# opening up connection,grabbing the page
uClient = uReq(my_urls)
page_html = uClient.read()
uClient.close()
错误:
Traceback (most recent call last):
line 20, in <module> page_no()
line 14, in page_no
bs = soup(html, "html.parser")
NameError: name 'html' is not defined`
我试图在不创建函数的情况下创建这个程序,但它只是返回列表中最后一个元素的值而不是所有数字。
困惑:
混淆了元素的顺序 def page_no()
、 #Url Loop
和 # opening up connection,grabbing the page
(我可能错了)
提前致谢。
页面导航器示例:
1 2 3 … 15 Next →
您正在尝试在抓取页面之前对其进行解析。
移动这条线
page_no()
到最后,在您抓取页面之后。但即便如此,您将 "grabbed page" 命名为 page_html
,但在 page_no()
中您正在寻找另一个名称 html
。所以你也可以尝试改变它,替换
bs = soup(html, "html.parser")
和
bs = soup(page_html, "html.parser")
P.S,您还有其他问题,例如代码中的缩进问题,您也必须解决这些问题才能正常工作