python beautifulSoup 全部查找

python beautifulSoup findAll

我在从该站点获取所有数据时遇到问题... 我无法生成所有数据的代码部分是 "pn" 我希望这段代码能从网站上生成这些数字。

58312-GA4 58312-RG4 58312-RR$

我已经尝试了很多方法,从切换标签和 类 到使用 find、findAll 和 find_all 返回和第四次,无论我尝试什么,我都只得到一个结果. 任何帮助都会很棒 - 谢谢 这是代码:

theurl="http://www.colehersee.com/home/grid/cat/14/?"
thepage = urllib.request.urlopen(theurl)
soup = BeautifulSoup(thepage,"html.parser")

for pn in soup.find('table',{"class":"mod_products_grid_listing"}).find_all('span',{"class":"product_code"}):
    pn2 = pn.text
for main in soup.find_all('nav',{"id":"breadcrumb"}):
    main1 = main.text

    print(pn2)
    print (main1)

您是 运行 获取 'pn' 值的 for 循环,与获取 'main' 值的 for 循环完全不同。具体来说,当你的代码执行到第二个 for 循环时,前一个 for 循环已经执行完了。

这会导致变量 pn2 被赋予 for 循环返回的最后一个值。

你可能想做类似的事情

pn2 = []    
for pn in soup.find('table',{"class":"mod_products_grid_listing"}).find_all('span',{"class":"product_code"}):
    pn2.append(pn.text)