Python- Twitter爬虫

时间:2017-05-30 03:31:32

标签: python twitter

我想询问是否有任何方法允许我的抓取工具一直向下到页面底部,并等待页面加载(以便添加加载的帖子的html) 。由于twitter的HTML代码只显示了一些帖子,你必须手动向下滚动才能在底部帖子加载后刷新html。 <html></html>代码只会​​显示当前现有的帖子,我的抓取工具会停止。

def spider(targetname, DOMAIN, g_data):
    for item in g_data:
        try:
            name = item.find_all("strong", {"class": "fullname show-popup-with-id "})[0].text
            username = item.find_all("span", {"class": "username u-dir"})[0].text
            post = item.find_all("p", {"class": "TweetTextSize TweetTextSize--normal js-tweet-text tweet-text"})[0].text
            replies = item.find_all("span", {"class": "u-hiddenVisually"})[3].text
            retweets = item.find_all("span", {"class": "u-hiddenVisually"})[4].text
            likes = item.find_all("span", {"class": "u-hiddenVisually"})[5].text
            retweetby = item.find_all("a", {"href": "/"+targetname})[0].text
            datas = item.find_all('a', {'class':'tweet-timestamp js-permalink js-nav js-tooltip'})
            for data in datas:
                link = DOMAIN + data['href']
                date = data['title']
            append_to_file(crawledfile, name, username, post, link, replies, retweets, likes, retweetby, date)
        except:
            pass

3 个答案:

答案 0 :(得分:0)

这需要抓取工具在抓取时执行javascript,我相信大多数抓取工具都不会。您可能会发现,您可以使用Twitter's official REST API代替您尝试做的任何事情。

在可能的情况下使用API​​通常比抓取网页更可靠。 ;)

答案 1 :(得分:0)

除了swalladge提到的内容之外,还有很多用于Python的Twitter软件包,这意味着你甚至不需要真正阅读Twitter的API来做你想做的事情!只需搜索Twitter Python即可获得大量建议。

答案 2 :(得分:0)

抓取工具无法执行JavaScript功能并获得新输出,因此您所看到的就是您所获得的。如果使用AJAX的网站想要可抓取,则需要提供普通用户的HTML快照。

在您的情况下,将输出所有推文,但谁知道有多少数据。然而,Twitter喜欢被抓取,因为它可以在搜索引擎中轻松查看,因此您可以使用它。