gpt4 book ai didi

python - 属性错误: 'NoneType' object has no attribute 'findNext' >> when retrieving tweets

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:50 25 4
gpt4 key购买 nike

我有一个文件,其中包含用户 ID 和推文 ID 的数量。我正在尝试使用这些信息检索推文。
当我尝试检索推文时遇到问题。当发现 Twitter 暂停帐户时,Python 脚本崩溃。我得到的错误是:

AttributeError: 'NoneType' object has no attribute 'findNext'

由于我还是 Python 领域的新手,所以我不知道如何处理这个问题。我希望脚本能够继续检索推文,即使它发现任何已暂停的帐户。

暂停帐户的一个示例是 following

推文示例 retrieved successfully

我用来检索推文的代码如下:

def get_tweet(user_id, tweet_id):  
"""fetch the tweet from given user_id and tweet_id
returns tweet text if found, otherwise returns Not Found
"""
url = TWITTER_URL + user_id + "/status/" + tweet_id
url = url.replace("\n", "")
print(url);
tweet = 'Not Found'
try:
response = urllib2.urlopen(url)
html = response.read()
soup = BeautifulSoup(html)
#extrat the paragraph that contains the tweet


tweet_paragrapgh = soup.find("div", 'original-tweet',{"data-user-id": user_id, "data-tweet-id": tweet_id}).findNext('p','js-tweet-text')
#strip off the html tag and get the tweet text
#print(tweet_paragrapgh);
tweet = tweet_paragrapgh.text
print (tweet);
except urllib2.HTTPError as e:
print
print "HTTP ERROR response code ", e.code, " for user id: ", user_id, " tweet id: ", tweet_id
return tweet
except urllib2.URLError as e:
print
print'Error reaching to server for ', "user id: ", user_id, " tweet id: ", tweet_id
print 'Reason: ', e.reason
return tweet
return tweet

提前致谢

最佳答案

通过 urllib2+BeautifulSoup 解析 twitter 页面确实很痛苦,因为有很多动态 JavaScript 逻辑、AJAX 调用涉及构建页。

具体来说,您实际使用urllib2获取的页面不包含original-tweet,没有带有data-tweet-id的元素 属性,所有 data-user-id 属性均为空。

不要重新发明轮子,而是使用 Twitter API

有多个 python twitter API 客户端可供选择:

希望有帮助。

关于python - 属性错误: 'NoneType' object has no attribute 'findNext' >> when retrieving tweets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com