BeautifulSoup и urllib для поиска данных с сайта

Мне нужно было сделать это в качестве тестового примера, чтобы узнать, добавлены ли новые классы в код. Это то, что я сделал

final static File rootFolder = new File(SuperClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
private static ArrayList<String> files = new ArrayList<String>();
listFilesForFolder(rootFolder); 

@Test(timeout = 1000)
public void testNumberOfSubclasses(){
    ArrayList<String> listSubclasses = new ArrayList<>(files);
    listSubclasses.removeIf(s -> !s.contains("Superclass.class"));
    for(String subclass : listSubclasses){
        System.out.println(subclass);
    }
    assertTrue("You did not create a new subclass!", listSubclasses.size() >1);     
}

public static void listFilesForFolder(final File folder) {
    for (final File fileEntry : folder.listFiles()) {
        if (fileEntry.isDirectory()) {
            listFilesForFolder(fileEntry);
        } else {
            files.add(fileEntry.getName().toString());
        }
    }
}
1
задан Newbie101 18 January 2019 в 14:09
поделиться

1 ответ

Ты почти у цели, еще один шаг. Вам просто нужно пройтись по элементам и найти тег <p> с class = "productPrice_price" и захватить текст:

from bs4 import BeautifulSoup
from urllib.request import urlopen
html = urlopen("https://www.zavvi.com/dvd/rampage-includes-digital-download/11729469.html ")
bsObj = BeautifulSoup(html.read(), features='html.parser')

all_divs = bsObj.find_all('div', {'class':'productPrice'}) # 1. get all divs 

for ele in all_divs:
    price = ele.find('p', {'class':'productPrice_price'}).text
    print (price)

Выход:

[111 ]
0
ответ дан chitown88 18 January 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: