-1

我正试图让 python 在 Ballotpedia 上给我州参议员和代表的名字。但是,我放在一起的代码只是给了我从 url 请求的标题,但我没有得到任何名称。这是我当前的python代码:

import requests
from bs4 import BeautifulSoup
import pandas as pd

list = ['https://ballotpedia.org/Alabama_State_Senate', 'https://ballotpedia.org/Alabama_House_of_Representatives']

temp_dict = {}

for page in list:
    r = requests.get(page)
    soup = BeautifulSoup(r.content, 'html.parser')

    temp_dict[page.split('/')[-1]] = [item.text for item in 
soup.select("table.bptable gray sortable tablesorter 
jquery-tablesorter a")]

df = pd.DataFrame.from_dict(temp_dict, 
orient='index').transpose()

我相信我的错误在这一行:

temp_dict[page.split('/')[-1]] = [item.text for item in 
soup.select("table.bptable gray sortable tablesorter 
jquery-tablesorter a")]

谢谢你。

4

1 回答 1

0

从页面上看,这两个表的索引是相同的。只需使用 pandas read_html 来获取表格并连接所有结果:-

import pandas as pd

urls = ['https://ballotpedia.org/Alabama_State_Senate', 'https://ballotpedia.org/Alabama_House_of_Representatives']

appended_data = []

for page in urls:
    df = pd.read_html(page)[3]
    appended_data.append(df)

appended_data = pd.concat(appended_data)
于 2020-03-31T05:56:39.633 回答