Issue
im trying to scrape https://www.forexfactory.com/calendar?day=today . My code is
table = soup.find_all("tr",{"class":"calendar_row"})
forcal = []
for item in table:
dict = {}
dict["Currency"] = item.find_all("td", {"class":"calendar__currency"})[0].text.strip() #Currency
dict["Event"] = item.find_all("td",{"class":"calendar__event"})[0].text.strip() #Event Name
dict["Time_Eastern"] = item.find_all("td", {"class":"calendar__time"})[0].text #Time Eastern
impact = item.find_all("td", {"class":"impact"})
for icon in range(0,len(impact)):
dict["Impact"] = impact[icon].find_all("span")[0]['title'].split(' ', 1)[0]
dict["Actual"] = item.find_all("td", {"class":"calendar__actual"})[0].text #Actual Value
dict["Forecast"] = item.find_all("td", {"class":"calendar__forecast"})[0].text #forecasted Value
dict["Previous"] = item.find_all("td", {"class":"calendar__previous"})[0].text # Previous
forcal.append(dict)
I am able to scrape all the data. But how do i filter for USD currency only? Currently it's scraping all currency.
Thank you.
Solution
You can add an if statement before you assign the values to the dictionary:
Currency = item.find_all("td", {"class":"calendar__currency"})[0].text.strip() #Currency
if Currency == "USD":
dict["Currency"] = Currency
dict["Event"] = item.find_all("td",{"class":"calendar__event"})[0].text.strip()
...
Answered By - goalie1998
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.