我从网络抓取开始,我得到了一个错误:
我得到了这个错误:
Traceback (most recent call last):
File "scrape.py", line 14, in <module>
print(str(parsePrice()))
File "scrape.py", line 9, in parsePrice
price=soup.find('span', {'class': 'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)'}).text
NameError: name 'soup' is not defined这是我的代码scrape.py:
import bs4
import requests
from bs4 import BeautifulSoup
def parsePrice():
r=requests.get('https://finance.yahoo.com/quote/FB?p=FB')
soap=bs4.BeautifulSoup(r.text, 'xml')
price=soup.find('span', {'class': 'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)'}).text
return price
while True:
print('The current price is: ')
print(str(parsePrice()))发布于 2020-04-09 15:44:10
即使您修复了soup问题,您的脚本仍然无法工作,因为这不是您想要使用xml解析器的地方。您应该选择html.parser、lxml或html5lib。此外,您还使用了复合类,这可能会在不久的将来导致任何错误。不过,我会这样做:
import time
import requests
from bs4 import BeautifulSoup
link = 'https://finance.yahoo.com/quote/FB?p=FB'
def parsePrice(url):
r = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(r.text,'html.parser')
price = soup.find("span",class_="Mb(-4px)").text
return price
while True:
print('The current price is:',parsePrice(link))
time.sleep(3)发布于 2020-04-09 14:48:34
变更线
soap=bs4.BeautifulSoup(r.text, 'xml')至
soup=bs4.BeautifulSoup(r.text, 'xml')https://stackoverflow.com/questions/61123865
复制相似问题