BeautifulSoup 基础知识

时间:2021-01-05 21:04:23

标签: python beautifulsoup

我需要帮助我的 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)
    



3 个答案:

答案 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/