我需要帮助我的 Twitter 机器人每小时自动发推文(我已经整理了所有的 api 和东西,所以一切都很好)。但是我似乎无法按照我打算的方式运行 BeautifulSoup,并且每次都会遇到相同的错误。 found = soup.find(几乎在代码的末尾)不起作用(因为我是 bs4 的新手)。
我做错了什么?
# model scraping for spacepics
import requests
from bs4 import BeautifulSoup as bs
import os
import tweepy as tp
import time
#Posting to twitter
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
# login to twitter account api
auth = tp.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tp.API(auth)
while True:
#Get Bitcoin Price
url = 'https://coinmarketcap.com/currencies/bitcoin/'
# download page for parsing
page = requests.get(url)
soup = bs(page.text, 'html.parser')
found = soup.find('div', {'class' : 'col-xs-6 col-sm-8 col-md-4 text-left'}). find("span", {"class" : "text-large2"})
#Update Twitter
status = time.strftime("%Y-%m-%d %H:%M:%S ") + "Bitcoin price currently at $" + found.text + " coinmarketcap.com"
api.update_status(status)
time.sleep(3600)
答案 0 :(得分:1)
如果错误在这一行:
found = soup.find('div', {'class' : 'col-xs-6 col-sm-8 col-md-4 text-left'}). find("span", {"class" : "text-large2"})
调用方法后尽量不要使用空格(最后一次查找):
found = soup.find('div', {'class' : 'col-xs-6 col-sm-8 col-md-4 text-left'}).find("span", {"class" : "text-large2"})
答案 1 :(得分:1)
我认为如果您使用以下代码,它将返回正确的价格:
found = soup.find(attrs= {'class':'priceValue___11gHJ'})
答案 2 :(得分:1)
Coinmarketcap 拥有自己的 API 访问权限,您可以免费使用,因此您无需解析输出。 https://coinmarketcap.com/api/