首页 > 解决方案 > BeautifulSoup - 没有类的刮桌子

问题描述

我被一个项目困住了,该项目需要我从网站上抓取一张桌子。我遇到的问题是网页上有多个表格,当我检查元素时,它们似乎都没有类。然而,表的行和列确实具有分配给它们的类。

我需要抓取的表格是详细说明邮政编码、位置、城市、人口和平均收入的表格。

我是 web-scraping/BeautifulSoup 的新手,如果我能得到任何帮助,我将不胜感激。

http://zipatlas.com/us/pa/philadelphia/zip-code-comparison/median-household-income.htm

from bs4 import BeautifulSoup
import requests

income_url = "http://zipatlas.com/us/pa/philadelphia/zip-code-comparison/median-household-income.htm"
headers = {"User-Agent": "Mozilla/5.0"}

response = requests.get(income_url,headers = headers)
response.status_code

soup = BeautifulSoup(response.content,"html.parser")

标签: pythonpython-3.xweb-scrapingbeautifulsoup

解决方案


表已经有了attribute

在此处输入图像描述

所以我们可以用这个pandas read_html

attrs={'rules': 'all'}

使用以下简短的代码:

import pandas as pd

df = pd.read_html(
    "http://zipatlas.com/us/pa/philadelphia/zip-code-comparison/median-household-income.htm", 
    attrs={'rules': 'all'}, 
    header=0, 
    index_col="#")[0]

print(df)

在此处输入图像描述


推荐阅读