BS4 LoveCalculator不起作用

时间:2017-02-04 09:07:28

标签: python beautifulsoup

我正在使用网站为机器人做爱情计算器模块。这是我的语法:

    url = "https://www.lovecalculator.com/love.php?name1={}&name2={}".format(name1, name2)
    async with aiohttp.get(url) as response:
        soupObject = BeautifulSoup(await response.text(), "html.parser")
    try:
        description = soupObject.soup.find_all('div').find(class_='result score').get_text()
    except:
        description = 'Dr. Love is busy right now.'

如何从网站上正确获取结果?我目前的语法无法做到这一点,我总是得到#Dr;博士。爱现在很忙。'信息。 这是页面来源: http://prntscr.com/e4bnhg

1 个答案:

答案 0 :(得分:0)

我认为您可能会遇到一些语法错误。

  • soupObject没有soup属性
  • find_all返回ResultSet,应在find
  • 之前编入索引

尝试将soupObject.soup.find_all('div').find(class_='result score').get_text()更改为soupObject.find_all('div')[0].find(class_='result score').get_text()

这是我的代码,就像魅力一样:

import urllib2
from bs4 import BeautifulSoup

name1, name2 = 'Alice', 'Bob'
url = 'https://www.lovecalculator.com/love.php?name1={}&name2={}'.format(name1, name2)
soup = BeautifulSoup(urllib2.urlopen(url).read(), 'html.parser')
love = soup.find('div', attrs={'class': 'result score'}).get_text().strip()
print(love)

结果是54%