我正在尝试使用页面源自动获取不同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来获取关注者的数量。但是,我希望通过这种方法尝试获得它,然后尝试一下。有什么建议吗?
中的代码答案 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()