【发布时间】:2020-04-07 13:55:21
【问题描述】:
我正在构建一个机器人,并将从下面的 twitter.com 的 html 中取出 href 部分,即 /VegSpringRoll/status/1205121838302420993,
<a class="css-4rbku5 css-18t94o4 css-901oao r-1re7ezh r-1loqt21 r-1q142lx r-1qd0xha r-a023e6 r-16dba41 r-ad9z0x r-bcqeeo r-3s2u2q r-qvutc0" title="9:46 PM · Dec 12, 2019" href="/VegSpringRoll/status/1205121838302420993" dir="auto" aria-label="Dec 12" role="link" data-focusable="true"</a>
我的脚本是:
class TwitterBot:
def __init__(self, username, password):
self.username = username
self.password = password
self.bot = webdriver.Firefox()
def login(self):
bot = self.bot
bot.get('https://twitter.com/login')
time.sleep(1)
email = bot.find_element_by_class_name('js-username-field.email-input.js-initial-focus')
password = bot.find_element_by_class_name('js-password-field')
email.clear()
password.clear()
email.send_keys(self.username)
password.send_keys(self.password)
password.send_keys(Keys.RETURN)
time.sleep()
def like_tweet(self,hashtag):
bot = self.bot
bot.get('https://twitter.com/search?q=%23' + hashtag + '&src=type')
time.sleep(1)
for i in range(1,10):
bot.execute_script('window.scrollTo(0,document.body.scrollHeight)')# this scroll 1 time only.
time.sleep(1)
tweets = bot.find_elements_by_class_name('css-4rbku5 css-18t94o4 css-901oao r-1re7ezh r-1loqt21 r-1q142lx r-1qd0xha r-a023e6 r-16dba41 r-ad9z0x r-bcqeeo r-3s2u2q r-qvutc0')
links = [elem.get_attribute('href') for elem in tweets]
print(links)
在推文部分之前一切正常。
但什么都没有打印出来。有人可以帮忙吗?
【问题讨论】:
-
tweet包含任何内容吗?这个bot是什么?它是什么物体? -
首先检查您在
tweets中获得的内容。每次(重新)加载页面时,某些页面可能会使用不同的随机类。 -
HTML 看起来无效。
-
你好@Reznik 和 furas,我已经更新了 OP,并将整个脚本粘贴在那里。 DebanjanB,直接从推特上复制过来的。
标签: python selenium twitter bots