我想询问是否有任何方法可以让我的爬虫一直到页面底部,并等待页面加载(以便加载的帖子的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发布于 2017-05-30 11:41:52
这就需要爬虫在爬行的同时执行javascript,我相信大多数爬虫都不会这样做,你可能会发现你可以使用Twitter's official REST API来做任何你想做的事情。
此外,在可能的情况下使用API通常比抓取网页更可靠。;)
发布于 2017-05-30 11:45:48
除了swalladge提到的,还有很多针对Python的Twitter包,这意味着你甚至不需要真正阅读Twitter的API就可以完成你想要做的事情!只需搜索Twitter Python即可获得大量建议。
发布于 2017-05-30 11:48:46
爬虫不能执行JavaScript函数并获得新的输出,所以你所看到的就是你所得到的。如果一个使用AJAX的网站想要爬行,它需要提供一个普通用户的HTML快照。
在您的情况下,这将输出所有的tweet,但谁知道这是多少数据。然而,Twitter喜欢被爬行,因为它可以很容易地在搜索引擎中查看它们,所以有一个API可以使用。
https://stackoverflow.com/questions/44252967
复制相似问题