selenium 使用Python selinum刮取推文

b5lpy0ml  于 2022-12-04  发布在  Python
关注(0)|答案(2)|浏览(170)

我尝试使用Python selinum在一个hashtag下抓取tweet,并使用以下代码向下滚动driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')
问题是,selinum只刮显示的tweet(只有3条tweet),然后向下滚动到页面的底部,加载更多的tweet和刮3条新的tweet之间缺少了很多tweet。
有没有一种方法可以显示所有的tweet,然后向下滚动,显示所有的新tweet或至少一些新tweet(我有一个机制来过滤已经刮过的rweets)?
请注意,我在GCP VM上运行脚本,因此无法旋转屏幕。
我想我可以让脚本一直按下向下箭头,这样我就可以一个接一个地显示推文,并擦除它们,还可以继续加载更多的推文,但我认为这会大大降低擦除器的速度。

t5fffqht

t5fffqht1#

按像素向下滚动页面,以便页面获得加载数据的时间,请尝试以下代码:

last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    driver.execute_script("window.scrollBy(0, 800);")  # you can increase or decrease the scrolling height, i.e - '800'
    sleep(1)
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height
xnifntxz

xnifntxz2#

要在selenium中向下滚动页面,我们需要写入

driver.execute_script(
        "window.scrollTo(" + str(data.location["x"]) + ", " + str(data.location["y"]) + ")")

这里的数据是我们从

相关问题