Объединить несколько списков, вырезанных из HTML, с помощью Python

#python #pandas #list #web-scraping #append

Вопрос:

Я пытаюсь извлечь список имен из Интернета, и мне нужно отобразить его в виде панд.

 import pandas as pd

images = soup.find_all('img')
for elements in images:
  x = elements['alt'] # str
  y = elements['src'] # st
  if x != '':
  b = {'alt':[x], 'src':[y]}
  df = pd.DataFrame(b)
  print(df)
 

Но, Панды вывели его не очень хорошо, так как название таблицы помещается на каждое имя и источник, который должен быть расположен в верхней части таблицы.

 alt                                    src
0  Crime Defender  admin/course_image/crime_defender.jpg
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
                  alt                                  src
0  Crime Investigator  admin/course_image/investigator.jpg
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
               alt                            src
0  Ethical Hacking  admin/course_image/hacker.jpg
               alt                               src
0  Dipendra Sharma  admin/trainer_image/dipendra.jpg
                      alt                          src
0  Pentester Professional  admin/course_image/pen1.jpg
               alt                               src
0  Dipendra Sharma  admin/trainer_image/dipendra.jpg
                     alt                             src
0  Pen Tester For Mobile  admin/course_image/android.png
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
                 alt                            src
0  Secure Programmer  admin/course_image/secure.png
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
                           alt                                   src
0  Fortify Web Security Expert  admin/course_image/websiteSecure.jpg
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
                            alt                           src
0  iOS APPLICATION EXPLOITATION  admin/course_image/apple.png
            alt                                   src
0  Abdul Vaheed  admin/trainer_image/abdul-vaheed.jpg
 

Так как кажется, что каждое имя есть в их собственном списке. Я попытался append объединить всю строку в списке, но она все еще не показала, что должны показывать панды фреймов данных. Кто-нибудь может мне помочь?

Ответ №1:

Сначала вам нужно добавить весь диктант в список, затем создать фрейм данных и удалить квадратные скобки внутри диктанта.

 response_list = []
images = soup.find_all('img')
for elements in images:
  x = elements['alt'] # str
  y = elements['src'] # st
  if x != '':
    response_list.append({'alt':x, 'src':y})

df = pd.DataFrame(response_list)
print(df)