我想打印所有项目,但我只得到第一个

时间:2018-12-20 21:03:32

标签: python-3.x beautifulsoup

我尝试删除此网站: https://developer.roblox.com/api-reference/function/GuiObject/TweenPosition

我试图从item-title div收集所有项目名称。 问题是,当我要打印它们时,我只会得到第一项。

import requests
from bs4 import BeautifulSoup

page = requests.get('https://www.notebook.hu/notebook/acer-notebook/aspire- 
sorozat')
soup = BeautifulSoup(page.text, 'html.parser')

cikkCimek = soup.find(class_='item-title')
cikkCimek_items = cikkCimek.find_all('a')

for cikkCimek in cikkCimek_items:
print(cikkCimek.prettify())

2 个答案:

答案 0 :(得分:2)

@ chitown88解释了该问题,并在内部循环中建议find_all()和另一个find_all()。有一种更高效的方法可以一次性完成:

for cikkCimek in soup.select(".item-title a"):
    print(cikkCimek.prettify())

其中.item-title a CSS选择器,它匹配类a内的所有item-title元素。

答案 1 :(得分:1)

cikkCimek = soup.find(class_='item-title')

将仅返回具有item-title类的第一个元素/块。在第一个块中,只有一个标签为<a>

的元素

更改为.find_all

import requests
from bs4 import BeautifulSoup

page = requests.get('https://www.notebook.hu/notebook/acer-notebook/aspire-sorozat')
soup = BeautifulSoup(page.text, 'html.parser')

cikkCimek = soup.find_all(class_='item-title')


for elem in cikkCimek:
    cikkCimek_items = elem.find_all('a')
    for elem_items in cikkCimek_items:
        print(elem_items.prettify())