【问题标题】:How can I get a follower count from the tiktok website?如何从 tiktok 网站获取关注者数量?
【发布时间】:2021-07-29 22:18:29
【问题描述】:

这是我第一次编写 python 脚本。我正在尝试从 tiktok 网站中提取关注者数量并将其用作字符串。我从进入 chrome 中的 Inspect 窗口得到选择器路径,单击关注者计数,然后右键单击“17M”(在此示例中)以保存选择器路径。这昨天工作得很好,然后突然停止了,现在无论我尝试什么,我都无法从这个页面获得“17M”。我正在使用 requests-html,但肯定会尝试漂亮的汤或您有任何其他建议!

from requests_html import HTMLSession
session = HTMLSession()
url = "https://www.tiktok.com/@terrycrews"
r = session.get(url)
sel = '#main > div.jsx-2773227880.main-body.page-with-header.middle.em-follow > div.jsx- 2938571814.share-layout.compact.middle > div > header > h2.count-infos > div:nth-child(2) > strong'
followers = r.html.find(sel, first=True).text
print(followers)

我得到的当前错误是 AttributeError: 'NoneType' object has no attribute 'text' 当我运行这段代码时。我希望得到17M

我希望您能提供任何帮助。谢谢!

【问题讨论】:

  • .find 正在返回 None 对象。为什么这样做取决于.html 的值。

标签: python html web-scraping beautifulsoup python-requests-html


【解决方案1】:

尝试指定User-Agent HTTP 头:

import requests
from bs4 import BeautifulSoup

url = "https://www.tiktok.com/@terrycrews"

headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
}

soup = BeautifulSoup(requests.get(url, headers=headers).content, "html.parser")
print(soup.select_one('[title="Followers"]').text)

打印:

17M

【讨论】:

  • 非常感谢您的回复!由于某种原因,当我运行此代码时,它仍然返回 AttributeError: 'NoneType' object has no attribute 'text'。由于这两种方法都停止了工作,而前者昨天工作得很好,所以我似乎一定有其他问题。
  • 它对我有用。你在使用他的代码吗?使用requests 代替requests_html
  • 和上面的代码一样!当我在命令行中输入汤时,它会返回一堆 html 代码,但它似乎并不完整,因为当我滚动浏览它时找不到“关注者”。
  • @David 确保您没有收到验证码页面。执行print(soup) 并在那里搜索17MFollowers
  • 啊哈!我认为你是对的——我在任何地方都找不到 17M,但我确实在文本中看到了 Captcha——这太有道理了!谢谢!现在要弄清楚如何绕过验证码 - 我计划为数千个用户名的完整列表运行此脚本以获得关注者人数,我担心在中途遇到验证码(甚至如何现在就开始吧!)
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多