【问题标题】:Merge multiple list scraped from HTML using Python使用 Python 合并从 HTML 中抓取的多个列表
【发布时间】:2021-09-23 00:45:46
【问题描述】:

我正在尝试从网络抓取名称列表,需要以 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 的输出效果不佳,因为表格的标题被放在了应该位于表格顶部的每个名称和来源上。

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 应该显示的内容。有人可以帮帮我吗?

【问题讨论】:

    标签: python pandas list web-scraping 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)
    

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多