使用python从图表中提取数据

使用python从图表中提取数据,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我试图从这个网站上只提取租用价格的绿点,但我找不到数据的来源。我想用beautifulsoup或scrapy来做网页抓取。数据是作为JSON导入的,还是它在网站上的显示方式?对于这样一个广泛的问题,我深表歉意。我对python编程语言还比较陌生。源代码中有可能指向数据的URL,但我无法理解。任何朝着正确方向的努力都将不胜感激 这是网站:我只想帮你找到数据的来源。解析JSON取决于您。如果在Chrome开发者控制台中打开网络选项卡,您可以看到: xhr?resort_id=5035&typ

我试图从这个网站上只提取租用价格的绿点,但我找不到数据的来源。我想用beautifulsoup或scrapy来做网页抓取。数据是作为JSON导入的,还是它在网站上的显示方式?对于这样一个广泛的问题,我深表歉意。我对python编程语言还比较陌生。源代码中有可能指向数据的URL,但我无法理解。任何朝着正确方向的努力都将不胜感激


这是网站:

我只想帮你找到数据的来源。解析JSON取决于您。如果在Chrome开发者控制台中打开网络选项卡,您可以看到:

xhr?resort_id=5035&type=rental&active=0
现在,当您单击它时,您将在右侧获得请求URL选项。这就是数据的来源:

https://redweek.com/whats-my-timeshare-worth/xhr?resort_id=5035&type=rental&active=0

哈姆扎说在哪里可以找到它。但在站点上重新迭代时,右键单击并选择Inspect或Ctrl-Shift-I。在右侧窗格中,您将在网络、XHR、标题中找到它。打开面板后,您可能需要重新加载页面

下面是将json转换为表的代码:

import pandas as pd
import requests

url = 'https://www.redweek.com/whats-my-timeshare-worth/xhr?resort_id=5035&type=rental&active=0'
headers = {'User-Agent': 'Mozilla/5.0'}
jsonData = requests.get(url, headers=headers).json()

cols = {}
for idx, each in enumerate(jsonData['cols']):
    cols.update({idx:each['label']})
cols.update({0:'Week'})

rows = []
for row in jsonData['rows']:
    temp_row = {}
    for idx, each in enumerate(row['c']):
        w=1
        temp_row.update({cols[idx]:each['v']})
    rows.append(temp_row)
    
df = pd.DataFrame(rows)

df['Price'] = df['Rented'].fillna(df['Unknown'])
df = df.drop(['Not Rented','Active posting','Rented','Unknown'],axis=1)
输出:


非常感谢,很抱歉,我稍后会回到这里,但是你能解释一下你是如何找到JSON的吗?哇!太好了!我可以问一下您是如何找到json源或表的url的吗?我在Safari网络选项卡中查找了一点,但找不到它。为什么需要用户代理部分?您可以阅读用户代理。我将添加一个phot,显示我在一段时间内找到url的位置
print(df)
      Bedrooms   Status  Week  Price
0            1  Unknown    52  120.0
1            1  Unknown    52  130.0
2            1  Unknown    53  120.0
3            1  Unknown     1   60.0
4            1  Unknown     3  140.0
5            1  Unknown     5  100.0
6            1  Unknown    11  170.0
7            1  Unknown    11   90.0
8            1  Unknown    20   90.0
9            1  Unknown    22  130.0
10           1  Unknown    23  100.0
11           1  Unknown    24  100.0
12           1  Unknown    24  180.0
13           1  Unknown    25  100.0
14           1  Unknown    27   90.0
15           1  Unknown    28   90.0
16           1  Unknown    29   90.0
17           1  Unknown    30   90.0
18           1  Unknown    47  100.0
19           1  Unknown    52  100.0
20           1  Unknown     1  140.0
21           1  Unknown    10  140.0
22           1  Unknown    12  130.0
23           1  Unknown    14  100.0
24           1  Unknown    14  160.0
25           1  Unknown    26  110.0
26           1  Unknown    34   90.0
27           1  Unknown    39  140.0
28           1  Unknown    43  160.0
29           1  Unknown    51  100.0
       ...      ...   ...    ...
4035         3   Rented    12  250.0
4036         3   Rented    13  270.0
4037         3   Rented    14  230.0
4038         3   Rented    18  280.0
4039         3   Rented    27  180.0
4040         3   Rented    35   90.0
4041         4   Rented    53  330.0
4042         4   Rented    15  170.0
4043         4   Rented    14  310.0
4044         4   Rented    18  250.0
4045         4   Rented    19  250.0
4046         4   Rented    46  300.0
4047         4   Rented    18  250.0
4048         4   Rented    19  200.0
4049         4   Rented     8  190.0
4050         4   Rented    12  240.0
4051         4   Rented    27  200.0
4052         4   Rented     7  240.0
4053         4   Rented    18  200.0
4054         4   Rented    47  310.0
4055         4   Rented    45  210.0
4056         4   Rented     7  320.0
4057         4   Rented    51  320.0
4058         4   Rented     9  300.0
4059         4   Rented    15  220.0
4060         4   Rented    39  210.0
4061         4   Rented    41  280.0
4062         4   Rented     4  200.0
4063         4   Rented     5  260.0
4064         4   Rented    35  130.0

[4065 rows x 4 columns]