自动抓取网页数据( 您对使用从Twitter提取的数据进行社会研究感兴趣吗? )

优采云 发布时间: 2021-11-07 03:07

  自动抓取网页数据(

您对使用从Twitter提取的数据进行社会研究感兴趣吗?

)

  

  如何从 Twitter 抓取数据

  您是否对使用从 Twitter 中提取的数据进行社会研究感兴趣?然后,根据所需数据的大小和时间范围,您可能需要 Twitter Scraper。现在就来发现市场上最好的。

  说到大数据这个词,可以联想的并不多,但可以肯定的是,推特每天可以在其平台上交换超过5亿条推文——其中很大一部分是文本,然后图像,然后是视频。对于大多数研究人员来说,基于文本的推文对于他们的社会研究非常重要,可用于情感分析、文本分类和一些预测分析。然而,对 Twitter 数据感兴趣的公司和研究人员不仅对 Twitter 感兴趣——*敏*感*词*和关注者同样重要。

  与大多数其他社交媒体平台不同,Twitter 拥有一个非常广泛、友好且免费的公共 API,您可以使用它来访问其平台上的数据——它甚至提供了一个用于访问实时 Twitter 数据的 Stream API。对于很多人来说,Twitter 提供的 API 正是他们从平台中提取有趣数据所需要的。但是,这些API有一定的局限性,比如一个窗口期内可以发送的请求数量,以及提取历史数据的距离。由于这些限制,一些研究人员陷入了困境,由于无法及时访问所需的数据或访问 API,API 对他们来说变得毫无用处——多亏了窗口期。

  如果您是 Twitter 提供的 API 不足以满足您的数据提取需求的研究人员之一,那么您需要转向 Twitter 爬虫,它使用网络机器人来自动化从 Twitter 采集数据的过程。支持爬取 Twitter 的网络机器人被称为 Twitter 爬虫。将讨论最好的 Twitter 爬虫。但在此之前,让我们来看看 Twitter 爬行。

  Twitter 搜索概览

  许多人错误地将 Twitter API 用作 Twitter 数据捕获功能来从 Twitter 中提取数据。这两种提取数据的方法是完全不同的。虽然 Twitter API 是官方可接受的检索数据 Twitter 的方式,并且只获取所需的数据,但 Twitter 爬行涉及获取 Twitter 页面的整个 HTML,然后解析所需的数据。Twitter 不支持抓取,因此您必须小心不要被抓住,因为您可能会以诉讼的形式与他们的法律团队发生冲突。

  然而,即使在法庭上,关于网络爬行的普遍共识是,即使没有您要爬行的站点的许可,对公开可用数据的爬行也是合法的。不幸的是,根据您处理数据的方式,它可能会变得非法。对于 Twitter 来说,虽然它们不支持爬虫,但它们似乎拥有最弱的反爬虫系统之一来检测爬虫。

  但是,您仍然需要做好准备和计划,因为您仍然会遇到 IP 块和验证码形式的阻力。不需要编码技能,您甚至可以使用可视化抓取工具。但是,凭借编码技能,您可以节省资金并创建自定义系统。

  如何使用 Python、requests 和 Beautifulsoup 获取 Twitter

  作为编码人员,您可以使用您想要收录的功能创建自己的 Twitter 爬虫,并且可以将其集成到更大的系统中。Twitter 爬虫没有任何特定的语言要求,因为您可以使用您选择的任何编程语言(前提是图灵是完整的)。但是,Python 有一些优秀的库,可以节省您的时间并使开发变得简单。Python 作为一种编程语言也很容易学习。它是网络爬虫开发中最流行的语言。

  就算我说推特对网站不使用scraper的行为不严格,你还是会遇到一定程度的阻力。就 Twitter 而言,Twitter 仍会跟踪您的 IP 地址,并在您超出所需限制时阻止您。但是,与其他需要住宅或移动代理访问其服务的 网站 不同,数据中心代理仍然可以在 Twitter 上运行。虽然它有一些 Ajax 特性可能会让你感到困难,但它也有一个没有经过 Ajaxified 的旧版本,你可以从那里获取它。

  要想爬取推特,你需要做的就是检查你要解析的内容的页面的HTML代码,并寻找收录数据的标签,并找出在第一页渲染后如何获取其他内容. 这样,您就可以使用“请求”从 Twitter 和 Beautifulsoup 下载网页来解析请求。

  确保将机器人的 User-Agent 标头设置为流行浏览器的标头。另外,不要忘记配置代理。下面是一个用 Python 编写的示例 Twitter 爬虫,Requests 和 Beautifulsoup-从 Twitter 的旧移动 网站 爬取,不需要 JavaScript。它将在主题标签搜索的第一页下载推文,并返回一个带有用户句柄和推文的 JSON 对象。

  import requests

from bs4 import BeautifulSoup

class TwitterHashTagPosts:

def __init__(self, hashtag):

self.hashtag = hashtag

self.tweets = []

self.url = "https://mobile.twitter.com/hashtag/" + self.hashtag.strip()

def scrape_tweets(self):

content = requests.get(self.url)

soup = BeautifulSoup(content.text, "html.parser")

tweet_divs = soup.select("#main_content")[0].select(".tweet")

for tweet in tweet_divs:

handle = tweet.find("div", {"class": "username"}).text.replace("\n", " ").strip()

post = tweet.find("div", {"class": "tweet-text"}).text.replace("\n", " ").strip()

self.tweets.append({handle: post})

return self.tweets

x = TwitterHashTagPosts("tiktokrating")

x.scrape_tweets()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线