使用Python在Twitter上擦除嵌套的Divs和Span吗?

发布于 2021-01-29 16:56:25

我正在尝试从Twitter搜索的结果中删除喜欢和转发的内容。

在运行以下Python之后,我得到一个空列表[]。我没有使用Twitter API,因为它在很早以前就没有通过主题标签查看推文。

我使用的代码是:

from bs4 import BeautifulSoup
import requests

url = 'https://twitter.com/search?q=%23bangkokbombing%20since%3A2015-08-10%20until%3A2015-09-30&src=typd&lang=en'
r  = requests.get(url)
data = r.text
soup = BeautifulSoup(data, "lxml")
all_likes = soup.find_all('span', class_='ProfileTweet-actionCountForPresentation')
print(all_likes)

我可以使用此代码成功将html保存到文件。当我搜索文本时,它缺少大量信息,例如我要查找的类名…

因此,(部分)问题显然在于准确地访问源代码。

 filename = 'newfile2.txt'
 with open(filename, 'w') as handle:
      handle.writelines(str(data))
关注者
0
被浏览
193
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您的GET请求似乎返回有效的HTML,但#timeline元素中没有tweet元素。但是,将用户代理添加到请求标头似乎可以解决此问题。

    from bs4 import BeautifulSoup
    import requests
    
    url = 'https://twitter.com/search?q=%23bangkokbombing%20since%3A2015-08-10%20until%3A2015-09-30&src=typd&lang=en'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}
    r = requests.get(url, headers=headers)
    data = r.text
    soup = BeautifulSoup(data, "lxml")
    all_likes = soup.find_all('span', class_='ProfileTweet-actionCountForPresentation')
    print(all_likes)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看