Reputation: 15
I’m trying to extract some XML data from WASDE (“World Agricultural Supply and Demand Estimates) webpage using BeautifulSoup and using the ‘find’ method and ‘lxml’ parser but I have an error and I cannot find a solution. See the code below.
Data1, Data2 and Data4 are exactly in the same path. I can extract Data1 and Data2 but python gives me an attribute error on Data4: AttributeError: 'NoneType' object has no attribute 'cell'
.
The only difference I found is that the attribute1 of Data1 and Data2 are single words “Production” (Data1) and “Imports” (Data2), nevertheless, the attribute1 of Data4 is composed of two separated words “Ending Stocks”. This seems to be the problem because if you replace “Ending Stocks” with “Domestic Feed” which is in the same path, you will find the same error but if you replace it with “Exports” which is also in the same path, the code will work fine.
But if you look now to Data3, which is in a different path but has a long attribute1 “Yield per Harvested Acre”, the code will work fine. So, the question is: Why ‘find’ method of Beutifulsoup doesn’t work sometimes when there is more than one word in an attribute? Any solution or better coding for this?
# Import libraries to be used
from urllib.request import urlopen
import requests
from bs4 import BeautifulSoup
# URL to be parsed
URL = 'https://www.usda.gov/oce/commodity/wasde/wasde1119.xml'
# Downloading URL and creating BeautifulSoup object
html = requests.get(URL)
soup = BeautifulSoup(html.text, "lxml")
# Get Data1 and print it
Data1 = soup.sr19.matrix1.find("m1_month_group",{"forecast_month1" :"Oct"}).find("m1_attribute_group",{"attribute1": "Production"}).cell["cell_value1"]
print("Data1 = ", Data1)
# Get Data2 and print it
Data2 = soup.sr19.matrix1.find("m1_month_group",{"forecast_month1" :"Oct"}).find("m1_attribute_group",{"attribute1": "Imports"}).cell["cell_value1"]
print("Data2= ", Data2)
# Get Data3 and print it
Data3 = soup.sr11.matrix1.find("attribute1",{"attribute1":"Yield per Harvested Acre"}).find("m1_month_group",{"forecast_month1": "Nov"}).cell["cell_value1"]
print("Data3= ", Data3)
# Get Data4 and print it
Data4 = soup.sr19.matrix1.find("m1_month_group",{"forecast_month1" :"Oct"}).find("m1_attribute_group",{"attribute1": "Ending Stocks"}).cell["cell_value1"]
print("Data4= ", Data4)
Upvotes: 0
Views: 135
Reputation: 11515
import requests
from bs4 import BeautifulSoup
r = requests.get(
'https://www.usda.gov/oce/commodity/wasde/wasde1119.xml')
soup = BeautifulSoup(r.text, 'lxml')
production = []
imports = []
nov = []
stock = []
for item in soup.findAll('m1_attribute_group', attrs={'attribute1': 'Production'}):
for cell in item.findAll('cell'):
cell = cell.get('cell_value1')
if cell is not None:
production.append(cell)
for item in soup.findAll('m1_attribute_group', attrs={'attribute1': 'Imports'}):
for cell in item.findAll('cell'):
cell = cell.get('cell_value1')
if cell is not None:
imports.append(cell)
for item in soup.findAll('m1_month_group', attrs={'forecast_month1': 'Nov'}):
for cell in item.findAll('cell'):
cell = cell.get('cell_value1')
if cell is not None:
nov.append(cell)
for item in soup.findAll('m1_attribute_group'):
for cell in item.findAll('cell', attrs={'cell_value1': True}):
cell = cell.get('cell_value1')
if cell is not None:
stock.append(cell)
for a, b, c, d in zip(production, imports, nov, stock):
print(
"Production: {:<10} Imports: {:<10} Nov: {:<10} Stock: {:<10}".format(a, b, c, d))
Output:
Production: 762.31 Imports: 180.03 Nov: 2658.19 Stock: 2618.41
Production: 627.98 Imports: 176.09 Nov: 3456.69 Stock: 3416.96
Production: 47.38 Imports: 4.30 Nov: 428.02 Stock: 414.83
Production: 714.93 Imports: 175.72 Nov: 2664.54 Stock: 2600.42
Production: 333.09 Imports: 6.96 Nov: 792.15 Stock: 816.54
Production: 18.50 Imports: 0.01 Nov: 765.55 Stock: 2629.43
Production: 20.94 Imports: 0.16 Nov: 1043.45 Stock: 3445.97
Production: 30.38 Imports: 0.45 Nov: 180.68 Stock: 428.40
Production: 151.13 Imports: 5.82 Nov: 755.17 Stock: 2647.47
Production: 85.17 Imports: 0.47 Nov: 288.28 Stock: 798.49
Production: 26.98 Imports: 0.06 Nov: 1394.89 Stock: 2659.68
Production: 202.93 Imports: 115.67 Nov: 1742.19 Stock: 3460.07
Production: 1.15 Imports: 6.15 Nov: 201.56 Stock: 426.56
Production: 4.26 Imports: 7.02 Nov: 1415.37 Stock: 2663.17
Production: 134.33 Imports: 3.94 Nov: 326.83 Stock: 796.90
Production: 0.97 Imports: 5.88 Nov: 497.76 Stock: 2658.19
Production: 19.25 Imports: 27.45 Nov: 671.05 Stock: 3456.69
Production: 0.07 Imports: 5.16 Nov: 45.78 Stock: 428.02
Production: 18.36 Imports: 18.46 Nov: 494.01 Stock: 2664.54
Production: 0.00 Imports: 26.06 Nov: 177.04 Stock: 792.15
Production: 98.51 Imports: 1.17 Nov: 2,239.15 Stock: 762.31
Production: 14.80 Imports: 0.10 Nov: 2,941.47 Stock: 1025.03
Production: 765.23 Imports: 175.68 Nov: 349.26 Stock: 182.47
Production: 765.55 Imports: 176.53 Nov: 2,309.22 Stock: 742.31
Production: 633.23 Imports: 172.48 Nov: 711.00 Stock: 282.73
Production: 633.55 Imports: 173.33 Nov: 713.29 Stock: 731.28
Production: 53.39 Imports: 3.27 Nov: 958.54 Stock: 1014.01
Production: 52.26 Imports: 3.27 Nov: 154.82 Stock: 172.89
Production: 711.84 Imports: 172.41 Nov: 723.71 Stock: 736.11
Production: 713.29 Imports: 173.27 Nov: 260.68 Stock: 277.90
Production: 324.70 Imports: 6.66 Nov: 1,034.06 Stock: 765.23
Production: 326.20 Imports: 6.66 Nov: 1,320.21 Stock: 1042.91
Production: 20.50 Imports: 0.01 Nov: 151.67 Stock: 179.68
Production: 20.00 Imports: 0.01 Nov: 1,095.67 Stock: 755.11
Production: 18.00 Imports: 0.15 Nov: 274.43 Stock: 287.80
Production: 17.20 Imports: 0.15 Nov: 491.79 Stock: 765.55
Production: 33.00 Imports: 0.45 Nov: 662.72 Stock: 1043.45
Production: 33.00 Imports: 0.45 Nov: 42.76 Stock: 180.68
Production: 152.00 Imports: 5.50 Nov: 489.85 Stock: 755.17
Production: 153.00 Imports: 5.50 Nov: 175.89 Stock: 288.28
Production: 72.50 Imports: 0.48 Nov: 571.30 Stock: 1361.22
Production: 74.00 Imports: 0.48 Nov: 699.06 Stock: 1747.20
Production: 28.70 Imports: 0.08 Nov: 172.55 Stock: 185.23
Production: 29.00 Imports: 0.08 Nov: 494.66 Stock: 1375.95
Production: 203.07 Imports: 114.99 Nov: 109.99 Stock: 371.25
Production: 203.29 Imports: 115.49 Nov: 337.76 Stock: 1398.80
Production: 1.10 Imports: 6.00 Nov: 352.64 Stock: 1770.05
Production: 1.10 Imports: 6.00 Nov: 93.64 Stock: 211.36
Production: 5.30 Imports: 7.70 Nov: 336.39 Stock: 1422.75
Production: 5.30 Imports: 7.70 Nov: 13.79 Stock: 347.30
Production: 132.00 Imports: 3.20 Nov: 206.47 Stock: 1396.68
Production: 132.00 Imports: 3.20 Nov: 227.55 Stock: 1747.53
Production: 0.95 Imports: 5.90 Nov: 88.69 Stock: 201.01
Production: 0.95 Imports: 5.90 Nov: 204.54 Stock: 1413.52
Production: 18.87 Imports: 27.40 Nov: 19.09 Stock: 334.01
Production: 18.87 Imports: 27.40 Nov: 45.2 Stock: 1394.89
Production: 0.06 Imports: 5.10 Nov: 37.2 Stock: 1742.19
Production: 0.06 Imports: 5.10 Nov: 51.7 Stock: 201.56
Production: 22.46 Imports: 17.29 Nov: 1,080 Stock: 1415.37
Production: 22.68 Imports: 17.09 Nov: 1,920 Stock: 326.83
Production: 0.00 Imports: 27.10 Nov: 120 Stock: 494.88
Production: 0.00 Imports: 27.10 Nov: 3,120 Stock: 644.73
Production: 102.19 Imports: 0.02 Nov: 955 Stock: 47.13
Production: 102.19 Imports: 0.02 Nov: 61 Stock: 482.17
Production: 11.50 Imports: 0.06 Nov: 140 Stock: 162.56
Production: 11.50 Imports: 0.06 Nov: 1,156 Stock: 499.34
Production: 1,361.22 Imports: 187.74 Nov: 950 Stock: 661.90
Production: 1,095.50 Imports: 171.31 Nov: 2,106 Stock: 44.15
Production: 384.39 Imports: 2.93 Nov: 1,014 Stock: 488.61
Production: 976.83 Imports: 184.81 Nov: 4.60 Stock: 173.29
Production: 252.15 Imports: 3.69 Nov: 100.7 Stock: 497.77
Production: 39.32 Imports: 0.01 Nov: 89.5 Stock: 669.62
Production: 12.19 Imports: 0.00 Nov: 4.03 Stock: 45.88
Production: 85.06 Imports: 1.46 Nov: 57.8 Stock: 494.54
Production: 26.24 Imports: 1.77 Nov: 360.6 Stock: 175.09
Production: 41.72 Imports: 0.13 Nov: 3.1 Stock: 497.76
Production: 34.07 Imports: 0.05 Nov: 421.4 Stock: 671.05
Production: 245.11 Imports: 133.71 Nov: 139.7 Stock: 45.78
Production: 152.12 Imports: 19.40 Nov: 179.5 Stock: 494.01
Production: 0.19 Imports: 17.58 Nov: 319.1 Stock: 177.04
Production: 33.19 Imports: 16.36 Nov: 49.9 Stock: 2,180.98
Production: 29.07 Imports: 39.13 Nov: 369.0 Stock: 2,875.67
Production: 0.26 Imports: 11.99 Nov: 52.4 Stock: 320.25
Production: 30.00 Imports: 14.54 Nov: 5.3 Stock: 2,242.47
Production: 0.20 Imports: 10.19 Nov: 4.7 Stock: 727.78
Production: 265.72 Imports: 16.43 Nov: 75.9 Stock: 2,191.07
Production: 1,396.68 Imports: 199.73 Nov: 64 Stock: 2,911.62
Production: 1,394.89 Imports: 201.43 Nov: 358 Stock: 345.01
Production: 1,134.21 Imports: 185.33 Nov: 0 Stock: 2,285.10
Production: 1,132.41 Imports: 187.03 Nov: 421 Stock: 709.92
Production: 363.65 Imports: 3.43 Nov: 160 Stock: 2,236.65
Production: 360.82 Imports: 3.39 Nov: 100 Stock: 2,940.82
Production: 1,033.03 Imports: 196.30 Nov: 260 Stock: 346.78
Production: 1,034.06 Imports: 198.05 Nov: 110 Stock: 2,306.25
Production: 302.69 Imports: 3.03 Nov: 370 Stock: 714.34
Production: 302.48 Imports: 3.05 Nov: 51 Stock: 2,239.15
Production: 57.73 Imports: 0.01 Nov: 3.40 Stock: 2,941.47
Production: 57.63 Imports: 0.01 Nov: 277.90 Stock: 349.26
Production: 11.50 Imports: 0.00 Nov: 765.55 Stock: 2,309.22
Production: 11.00 Imports: 0.00 Nov: 176.53 Stock: 711.00
Production: 104.23 Imports: 1.70 Nov: 148.47 Stock: 714.93
Production: 104.35 Imports: 1.70 Nov: 755.17 Stock: 941.22
Production: 28.56 Imports: 1.03 Nov: 180.68 Stock: 157.81
Production: 28.56 Imports: 1.03 Nov: 288.28 Stock: 713.06
Production: 39.88 Imports: 0.09 Nov: 138.13 Stock: 252.82
Production: 40.38 Imports: 0.09 Nov: 633.55 Stock: 679.98
Production: 46.20 Imports: 0.03 Nov: 173.33 Stock: 929.12
Production: 46.04 Imports: 0.03 Nov: 127.47 Stock: 147.41
Production: 256.34 Imports: 144.88 Nov: 627.17 Stock: 706.09
Production: 253.80 Imports: 146.05 Nov: 179.38 Stock: 248.51
Production: 158.75 Imports: 22.01 Nov: 142.61 Stock: 711.84
Production: 158.55 Imports: 22.01 Nov: 29.39 Stock: 956.87
Production: 0.18 Imports: 17.37 Nov: 52.26 Stock: 153.82
Production: 0.18 Imports: 17.77 Nov: 3.27 Stock: 723.32
Production: 33.10 Imports: 18.01 Nov: 3.81 Stock: 259.40
Production: 30.60 Imports: 18.16 Nov: 31.46 Stock: 713.29
Production: 32.81 Imports: 42.92 Nov: 25.86 Stock: 958.54
Production: 32.96 Imports: 42.24 Nov: 27.59 Stock: 154.82
Production: 0.25 Imports: 12.51 Nov: 248.51 Stock: 723.71
Production: 0.27 Imports: 12.51 Nov: 713.29 Stock: 260.68
Production: 30.96 Imports: 17.26 Nov: 173.27 Stock: 976.83
Production: 30.96 Imports: 18.26 Nov: 144.66 Stock: 1,297.72
Production: 0.20 Imports: 10.61 Nov: 723.71 Stock: 118.08
Production: 0.20 Imports: 10.91 Nov: 154.82 Stock: 1,051.55
Production: 262.48 Imports: 14.40 Nov: 260.68 Stock: 313.33
Production: 262.48 Imports: 14.40 Nov: 32.21 Stock: 1,018.87
Production: 1,080.02 Imports: 149.96 Nov: 326.20 Stock: 1,329.57
Production: 820.94 Imports: 146.50 Nov: 6.66 Stock: 156.41
Production: 371.10 Imports: 0.92 Nov: 85.85 Stock: 1,094.98
Production: 708.92 Imports: 149.05 Nov: 200.45 Stock: 289.54
Production: 164.42 Imports: 1.18 Nov: 131.00 Stock: 1,033.03
Production: 32.00 Imports: 0.01 Nov: 33.62 Stock: 1,322.68
Production: 82.00 Imports: 0.92 Nov: 1.93 Stock: 150.10
Production: 13.20 Imports: 0.05 Nov: 20.00 Stock: 1,092.55
Production: 13.10 Imports: 0.17 Nov: 0.01 Stock: 281.03
Production: 24.12 Imports: 0.04 Nov: 0.05 Stock: 1,034.06
Production: 126.08 Imports: 88.35 Nov: 6.05 Stock: 1,320.21
Production: 6.40 Imports: 9.46 Nov: 14.00 Stock: 151.67
Production: 62.02 Imports: 18.47 Nov: 1.89 Stock: 1,095.67
Production: 0.00 Imports: 15.67 Nov: 4.96 Stock: 274.43
Production: 27.57 Imports: 16.13 Nov: 17.20 Stock: 489.23
Production: 29.95 Imports: 14.20 Nov: 0.15 Stock: 636.73
Production: 0.07 Imports: 10.02 Nov: 5.00 Stock: 44.37
Production: Imports: Nov: 8.50 Stock: 477.87
Production: 14.10 Imports: 1.70 Nov: 9.00 Stock: 161.63
Production: 259.07 Imports: 3.46 Nov: 4.81 Stock: 492.22
Production: 1,104.01 Imports: 166.09 Nov: 5.92 Stock: 652.93
Production: 1,102.16 Imports: 167.44 Nov: 33.00 Stock: 41.18
Production: 850.01 Imports: 159.09 Nov: 0.45 Stock: 484.03
Production: 848.16 Imports: 160.44 Nov: 4.50 Stock: 171.87
Production: 350.01 Imports: 1.27 Nov: 9.50 Stock: 491.78
Production: 347.01 Imports: 1.27 Nov: 24.50 Stock: 661.27
Production: 754.00 Imports: 164.82 Nov: 5.37 Stock: 42.86
Production: 755.16 Imports: 166.17 Nov: 10.00 Stock: 490.38
Production: 214.50 Imports: 1.17 Nov: 153.00 Stock: 173.91
Production: 214.50 Imports: 1.17 Nov: 5.50 Stock: 491.79
Production: 50.00 Imports: 0.01 Nov: 56.00 Stock: 662.72
Production: 50.00 Imports: 0.01 Nov: 127.50 Stock: 42.76
Production: 101.00 Imports: 1.00 Nov: 29.00 Stock: 489.85
Production: 101.00 Imports: 1.00 Nov: 12.00 Stock: 175.89
Production: 13.50 Imports: 0.04 Nov: 7.82 Stock: 580.77
Production: 14.00 Imports: 0.04 Nov: 74.00 Stock: 690.45
Production: 14.00 Imports: 0.10 Nov: 0.48 Stock: 176.30
Production: 14.00 Imports: 0.10 Nov: 17.00 Stock: 484.13
Production: 36.00 Imports: 0.02 Nov: 39.50 Stock: 116.52
Production: 35.50 Imports: 0.02 Nov: 34.50 Stock: 596.69
Production: 129.27 Imports: 95.80 Nov: 8.29 Stock: 713.20
Production: 127.03 Imports: 97.20 Nov: 1.59 Stock: 171.18
Production: 6.40 Imports: 10.20 Nov: 29.00 Stock: 489.90
Production: 6.40 Imports: 9.90 Nov: 0.08 Stock: 127.77
Production: 64.80 Imports: 21.00 Nov: 3.30 Stock: 574.85
Production: 64.56 Imports: 21.00 Nov: 9.40 Stock: 703.02
Production: 0.00 Imports: 15.60 Nov: 20.00 Stock: 172.38
Production: 0.00 Imports: 16.00 Nov: 1.26 Stock: 498.21
Production: 27.00 Imports: 17.50 Nov: 182.10 Stock: 109.75
Production: 25.00 Imports: 17.50 Nov: 203.29 Stock: 571.30
Production: 30.91 Imports: 16.90 Nov: 115.49 Stock: 699.06
Production: 30.91 Imports: 17.90 Nov: 39.66 Stock: 172.55
Production: 0.08 Imports: 10.50 Nov: 299.72 Stock: 494.66
Production: 0.08 Imports: 10.80 Nov: 13.05 Stock: 109.99
Production: 14.00 Imports: 1.00 Nov: 188.11 Stock: 331.71
Production: 14.00 Imports: 1.00 Nov: 0.94 Stock: 349.08
Production: 254.00 Imports: 7.00 Nov: 1.10 Stock: 89.12
Production: 254.00 Imports: 7.00 Nov: 6.00 Stock: 328.60
Production: 494.88 Imports: 46.70 Nov: 0.30 Stock: 16.56
Production: 346.01 Imports: 41.20 Nov: 7.20 Stock: 333.79
Production: 5.66 Imports: 0.87 Nov: 0.00 Stock: 350.34
Production: 489.23 Imports: 45.83 Nov: 0.84 Stock: 93.42
Production: 181.69 Imports: 0.76 Nov: 1.06 Stock: 331.69
Production: 13.20 Imports: 0.01 Nov: 5.30 Stock: 14.88
Production: 112.76 Imports: 0.00 Nov: 7.70 Stock: 340.32
Production: 7.50 Imports: 0.00 Nov: 0.50 Stock: 355.04
Production: 20.58 Imports: 0.25 Nov: 12.20 Stock: 94.21
Production: 27.66 Imports: 0.50 Nov: 0.60 Stock: 338.20
Production: 241.09 Imports: 21.35 Nov: 1.26 Stock: 14.27
Production: 148.87 Imports: 5.50 Nov: 139.77 Stock: 337.76
Production: 2.01 Imports: 2.01 Nov: 132.00 Stock: 352.64
Production: 37.00 Imports: 2.35 Nov: 3.20 Stock: 93.64
Production: 4.73 Imports: 2.00 Nov: 21.00 Stock: 336.39
Production: 12.24 Imports: 1.30 Nov: 128.00 Stock: 13.79
Production: 2.22 Imports: 3.62 Nov: 1.30 Stock: 198.67
Production: Imports: Nov: 145.67 Stock: 219.33
Production: 8.20 Imports: 0.56 Nov: 0.97 Stock: 79.87
Production: 1.64 Imports: 1.66 Nov: 0.95 Stock: 192.25
Production: 4.30 Imports: 0.09 Nov: 5.90 Stock: 22.22
Production: 7.79 Imports: 0.69 Nov: 0.70 Stock: 203.24
Production: 0.18 Imports: 0.81 Nov: 6.50 Stock: 225.46
Production: 3.97 Imports: 0.40 Nov: 0.28 Stock: 86.19
Production: 497.77 Imports: 43.85 Nov: 1.04 Stock: 200.14
Production: 497.76 Imports: 43.35 Nov: 15.46 Stock: 21.09
Production: 351.77 Imports: 40.75 Nov: 18.87 Stock: 207.50
Production: 351.76 Imports: 40.85 Nov: 27.40 Stock: 228.78
Production: 5.99 Imports: 0.94 Nov: 2.25 Stock: 88.61
Production: 5.97 Imports: 0.94 Nov: 46.75 Stock: 205.21
Production: 491.78 Imports: 42.91 Nov: 0.89 Stock: 19.66
Production: 491.79 Imports: 42.41 Nov: 14.09 Stock: 206.47
Production: 183.60 Imports: 0.66 Nov: 0.20 Stock: 227.55
Production: 184.60 Imports: 0.66 Nov: 0.06 Stock: 88.69
Production: 13.30 Imports: 0.01 Nov: 5.10 Stock: 204.54
Production: 13.30 Imports: 0.01 Nov: 0.05 Stock: 19.09
Production: 114.00 Imports: 0.00 Nov: 4.76 Stock: 46.1
Production: 115.00 Imports: 0.00 Nov: 0.40 Stock: 47.8
Production: 7.50 Imports: 0.00 Nov: 0.20 Stock: 45.2
Production: 7.50 Imports: 0.00 Nov: 11.77 Stock: 45.2
Production: 20.50 Imports: 0.25 Nov: 22.68 Stock: 37.6
Production: 20.50 Imports: 0.25 Nov: 17.09 Stock: 39.6
Production: 28.30 Imports: 0.40 Nov: 3.92 Stock: 38.1
Production: 28.30 Imports: 0.40 Nov: 39.04 Stock: 37.2
Production: 241.70 Imports: 16.03 Nov: 0.72 Stock: 46.4
Production: 240.60 Imports: 15.43 Nov: 11.78 Stock: 47.6
Production: 146.00 Imports: 3.10 Nov: 4.92 Stock: 51.6
Production: 146.00 Imports: 2.50 Nov: 0.00 Stock: 51.7
Production: 2.01 Imports: 2.05 Nov: 27.10 Stock: 1,181
Production: 2.01 Imports: 2.05 Nov: 8.04 Stock: 1,099
Production: 37.40 Imports: 0.60 Nov: 25.82 Stock: 1,080
Production: 36.50 Imports: 1.40 Nov: 1.07 Stock: 1,080
Production: 4.90 Imports: 2.20 Nov: 5.14 Stock: 1,741
Production: 4.90 Imports: 1.80 Nov: 16.99 Stock: 1,885
Production: 12.20 Imports: 2.70 Nov: 102.19 Stock: 1,962
Production: 12.00 Imports: 2.50 Nov: 0.02 Stock: 1,920
Production: 2.29 Imports: 3.68 Nov: 6.00 Stock: 158
Production: 2.29 Imports: 3.68 Nov: 98.00 Stock: 135
Production: 7.14 Imports: 1.10 Nov: 0.50 Stock: 120
Production: 7.14 Imports: 1.10 Nov: 20.70 Stock: 120
Production: 1.55 Imports: 1.90 Nov: 1.68 Stock: 3,080
Production: 1.55 Imports: 2.00 Nov: 11.50 Stock: 3,119
Production: 4.30 Imports: 0.30 Nov: 0.06 Stock: 3,161
Production: 4.30 Imports: 0.30 Nov: 1.80 Stock: 3,120
Production: 7.80 Imports: 0.69 Nov: 6.60 Stock: 964
Production: 7.80 Imports: 0.69 Nov: 5.20 Stock: 955
Production: 0.20 Imports: 0.79 Nov: 1.44 Stock: 960
Production: 0.20 Imports: 0.79 Nov: 347.30 Stock: 955
Production: 3.88 Imports: 0.41 Nov: 1,394.89 Stock: 63
Production: 3.88 Imports: 0.41 Nov: 201.43 Stock: 59
Upvotes: 0
Reputation: 23815
The code below uses python ElementTree lib to read 'Data1' and 'Data3'.
since the XML is very big I am not sure those results are correct but if it is - you can extend it and use it for 'Data2' and 'Data4',
import requests
import xml.etree.ElementTree as ET
xml = requests.get('https://www.usda.gov/oce/commodity/wasde/wasde1119.xml').content.decode('utf-8')
root = ET.fromstring(xml)
# Data1
cells = root.findall(".//sr19//matrix1//m1_month_group[@forecast_month1='Oct']//m1_attribute_group[@attribute1='Production']//Cell")
values = [cell.attrib['cell_value1'] for cell in cells]
print(values)
# Data3
cells = root.findall(".//sr11//matrix1//attribute1[@attribute1='Yield per Harvested Acre']//m1_month_group[@forecast_month1='Nov']//Cell")
values = [cell.attrib['cell_value1'] for cell in cells]
print(values)
output
['765.23', '633.23', '53.39', '711.84', '324.70', '20.50', '18.00', '33.00', '152.00', '72.50', '28.70', '203.07', '1.10', '5.30', '132.00', '0.95', '18.87', '0.06', '22.46', '0.00', '102.19', '11.50']
['51.7']
Upvotes: 0