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