如何编写无限滚动的代码? (使用硒)

时间:2017-07-20 17:56:37

标签: python selenium twitter scroll web-scraping

我正在使用“webdriver.PhantomJS”抓取网页(推特)。

我想获取所有滚动和数据(推文),但现在我只知道如何获取页面。

for _ in range(500):
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(0.2)

使用过去的数据而不是实时数据 (例如,从5月1日到5月2日)

数据的数量是固定的。

但是,我无法弄清楚有多少推文

我有,设置页数是个问题。

如何编写无限滚动的代码?

我通过搜索看到了很多答案,但我很难将它应用到我的代码中,所以我问这个问题。

#My entire code is this.
#py3
import requests
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.PhantomJS('C:\phantomjs-2.1.1-windows/bin/phantomjs')
url = u'https://twitter.com/search?f=tweets&vertical=default&q=%EB%B0%B0%EA%B3%A0%ED%8C%8C%20since%3A2017-07-19%20until%3A2017-07-20&l=ko&src=typd&lang=ko'


browser.get(url)
time.sleep(1)

body = browser.find_element_by_tag_name('body')
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

for _ in range(500):
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(0.2)

tweets=browser.find_elements_by_class_name('tweet-text')

wfile = open("ttttttt.txt", mode='w', encoding='utf8')
data={}
i = 1
for i, tweet in enumerate(tweets):
    data['text'] = tweet.text
    print(i, ":", data)
    wfile.write(str(data) +'\n')
    i += 1
wfile.close()

0 个答案:

没有答案