python - 使用 Beautiful Soup 4 抓取 CSS 选择器
问题描述
我试图只打印来自给定货币的高影响力新闻。当我在语句中包含worsedata == True
条件时,代码不会打印任何内容。if
当我只在语句中包含货币条件时,if
它会打印所有美元新闻,而不管影响强度如何。
import requests
from bs4 import BeautifulSoup
r = requests.get("https://www.forexfactory.com/#closed")
soup = BeautifulSoup(r.text, 'lxml')
table = soup.find("table", class_="calendar__table")
worsedata = False
for row in table.find_all('tr', class_='calendar__row--grey'): #finds all rows on forexfactory.com
currency = row.find("td", class_="currency")
currency = currency.get_text(strip=True)
for impact in row.select("tr.calendar__row calendar_row calendar__row--grey span.high:not(.revised)"):
worsedata = True
if currency == "USD" and worsedata == True:
actual = row.find("td", class_="actual")
actual = actual.get_text(strip=True)
forecast = row.find("td", class_="forecast")
forecast = forecast.get_text(strip=True)
print(actual, forecast)