使用 Python 合并从 HTML 抓取的多个列表

Merge multiple list scraped from HTML using Python

我正在尝试 从网络上抓取 名称列表,需要以 Pandas.

的形式列出
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)

但是,Pandas 输出效果不佳,因为 table 的标题放在每个名称和来源上,而这些名称和来源本应位于 table 的顶部.

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 合并列表中的所有字符串,但它仍然没有显示 DataFrame Pandas 应该显示的内容。有人可以帮助我吗?

您需要先将所有字典添加到列表中,然后创建数据框并删除字典中的方括号。

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)