Я хочу распечатать все предметы, но я получаю только первый - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь удалить этот сайт: https://www.notebook.hu/notebook/acer-notebook/aspire-sorozat

Я пытался собрать все названия элементов из элемента item-title.Проблема в том, что когда я хочу распечатать их, я получаю только первый товар.

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 голосов
/ 21 декабря 2018

@ chitown88 объяснил проблему и предложил find_all() с другим find_all() во внутреннем цикле.Существует более эффективный способ сделать это за один раз:

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

, где .item-title a - это CSS-селектор , соответствующий всем a элементам внутри элементов с классом item-title.

0 голосов
/ 21 декабря 2018
cikkCimek = soup.find(class_='item-title')

вернет только первый элемент / блок с заголовком класса item.И в этом первом блоке только один элемент с тегом <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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...