用美味湯匙清理桌子

2024-07-07 07:46:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从这个站点:https://www.predictit.org/Contract/7069/Will-the-Senate-pass-the-Better-Care-Reconciliation-Act-by-July-31#prices中获取价格表(购买是的,价格和合同可用)。你知道吗

这是我的(显然是非常初步的)代码,现在的结构只是为了找到表:

from bs4 import BeautifulSoup
import requests
from lxml import html
import json, re

url = "https://www.predictit.org/Contract/7069/Will-the-Senate-pass-the-Better-Care-Reconciliation-Act-by-July-31#prices"

ret = requests.get(url).text

soup = BeautifulSoup(ret, "lxml")

try:
    table = soup.find('table')
    print table
except AttributeError as e:
    print 'No tables found, exiting'

代码查找并解析一个表;但是,它是错误的表(另一个选项卡https://www.predictit.org/Contract/7069/Will-the-Senate-pass-the-Better-Care-Reconciliation-Act-by-July-31#data上的数据表)。你知道吗

如何解决此错误以确保代码标识正确的表?你知道吗


Tags: thehttpsorgimportbywwwpassact
1条回答
网友
1楼 · 发布于 2024-07-07 07:46:53

正如注释中提到的@downshift,该表是使用xhr请求生成的。
因此,您可以使用Selenium或直接请求站点的api。你知道吗

使用第二个选项:

url = "https://www.predictit.org/PrivateData/GetPriceListAjax?contractId=7069"
ret = requests.get(url).text
soup = BeautifulSoup(ret, "lxml")
table = soup.find('table')

相关问题 更多 >