使用BeautifulSoup从Twitter中提取追随者数量

时间:2016-05-12 16:14:20

标签: python twitter beautifulsoup

我正在尝试使用页面源自动获取不同Twitter帐户的关注者数量。

我有一个帐户的以下代码

from bs4 import BeautifulSoup
import requests
username='justinbieber'
url = 'https://www.twitter.com/'+username
r = requests.get(url)
soup = BeautifulSoup(r.content)
for tag in soup.findAll('a'):
    if tag.has_key('class'):
        if tag['class'] == 'ProfileNav-stat ProfileNav-stat--link u-borderUserColor u-textCenter js-tooltip js-nav u-textUserColor':
            if tag['href'] == '/justinbieber/followers':
                print tag.title
                break

我不确定我哪里出错了。我知道我们可以使用Twitter API来获取关注者的数量。但是,我希望通过这种方法尝试获得它,然后尝试一下。有什么建议吗?

我已修改了https://issues.couchbase.com/browse/MB-18905

中的代码

1 个答案:

答案 0 :(得分:1)

如果我是你,我会将类名作为参数传递给find()函数而不是find_all(),我首先会查找包含<li>元素的from bs4 import BeautifulSoup import requests username='justinbieber' url = 'https://www.twitter.com/'+username r = requests.get(url) soup = BeautifulSoup(r.content) f = soup.find('li', class_="ProfileNav-item--followers") title = f.find('a')['title'] print title # 81,346,708 Followers num_followers = int(title.split(' ')[0].replace(',','')) print num_followers # 81346708 元素你正在寻找的锚。它看起来像这样

findAll()

PS export class LimiterComponent { limit: number = 10; @Input('record-type') recordType: string; @Output() limitChangedEvent = new EventEmitter<number>(); limitChanged($event) { this.limitChangedEvent.emit($event.currentTarget.value); } } 在bs4中是renamed to find_all()