【python】python抓取Tw评论(用于课题研究)

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术


【python】python取Tw评论(纯属原创手把手教学)


1. 任务描述

要爬取Tw的某个贴子下的评论,用于分析大熊猫丫丫回国,对网友的情感进行分析的课题研究。

在这里插入图片描述


2. 分析url

按下F12,请求网页。找到我们需要的评论内容所在的位置。

在这里插入图片描述

然后,点击标头,查看该位置对应请求的内容,如下所示:可以看到请求的url是非常长的,经过分析,这个url是经过url编码得到的。所以我们需要对这个url进行解码。

在这里插入图片描述
解码完成后,我们可以将url简化为如下内容:

base_url = "https://twitter.com/i/api/graphql/wETHelmSuBQR5r-dgUlPxg/TweetDetail"

但是,通过分析url种存在了大量的参数,我们需要将参数提取出来:

params = {
    "variables": json.dumps({
        "focalTweetId": "1663106380327456768",
        "with_rux_injections": False,
        "includePromotedContent": True,
        "withCommunity": True,
        "withQuickPromoteEligibilityTweetFields": True,
        "withBirdwatchNotes": True,
        "withVoice": True,
        "withV2Timeline": True
    }),
    "features": json.dumps({
        "rweb_lists_timeline_redesign_enabled": True,
        "responsive_web_graphql_exclude_directive_enabled": True,
        "verified_phone_label_enabled": False,
        "creator_subscriptions_tweet_preview_api_enabled": True,
        "responsive_web_graphql_timeline_navigation_enabled": True,
        "responsive_web_graphql_skip_user_profile_image_extensions_enabled": False,
        "tweetypie_unmention_optimization_enabled": True,
        "vibe_api_enabled": True,
        "responsive_web_edit_tweet_api_enabled": True,
        "graphql_is_translatable_rweb_tweet_is_translatable_enabled": True,
        "view_counts_everywhere_api_enabled": True,
        "longform_notetweets_consumption_enabled": True,
        "tweet_awards_web_tipping_enabled": False,
        "freedom_of_speech_not_reach_fetch_enabled": True,
        "standardized_nudges_misinfo": True,
        "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": False,
        "interactive_text_enabled": True,
        "responsive_web_text_conversations_enabled": False,
        "longform_notetweets_rich_text_read_enabled": True,
        "longform_notetweets_inline_media_enabled": False,
        "responsive_web_enhance_cards_enabled": False
    })
}


3. 分析请求头

从request headers来看,这里主要包含了cookie,所以我们要在代码中包含cookie的值。

在这里插入图片描述

cookie的形式如下:

headers = {
    'Cookie': '_ga=GA1.2.1645085428.1684383483; _gid=GA1.2.32216975.1685412938; guest_id=v1%3A168541294246726006; att=1-KS0lGDdYbE1xQ3YP3jvBJuUeHKOiSgmthFGUByie; _twitter_sess=BAh7CSIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%250ASGFzaHsABjoKQHVzZWR7ADoPY3JlYXRlZF9hdGwrCD%252B%252BcGqIAToMY3NyZl9p%250AZCIlYmZlNWNiZDdmN2FiNzBlZGRhMzcyNTFjNTk3N2Y5NmI6B2lkIiUxNWQ4%250ANDQwMTMxNTgzMzU3MDkzZTNlYzgzZWJmM2E0Zg%253D%253D--a1980fe0136deca529b50fab12c9f6807a3eb376; g_state={"i_l":0}; kdt=5i0pbXObV4u1wQhMJ6amsd56vV15BKiLszP0nnrn; auth_token=9f2fde5a8edb4613de0be3f90d986871e16566fe; ct0=578e26425d0d83e069490fcfd6c012f927ff2da6972ae4367ad39b3c6120d5aacef5952be219e724cd5ce06d7cc264eaadbe3bb828840d3467bf9aac278b4b530c289607a27924ec2330787cff87d5ab; lang=en; twid=u%3D1663368880327376896; guest_id_ads=v1%3A168541294246726006; guest_id_marketing=v1%3A168541294246726006; personalization_id="v1_JECMEvV9Cw0lBWxFEYJZVQ=="'
}

4. 分析携带数据

通过观察内容,请求的携带数据也是经过url编码得到的,所以我们也需要对其进行url解码。解码内容如下:

variables = urllib.parse.unquote("%7B%22focalTweetId%22%3A%221663106380327456768%22%2C%22referrer%22%3A%22search%22%2C%22controller_data%22%3A%22DAACDAAFDAABDAABDAABCgABAAAAAAAIAEAAAAwAAgoAAQAAAAAAAAABCgACsOsF7S%2F7QPMLAAMAAAAM5Lir5Lir5Zue5Zu9CgAFbv14THAn25wIAAYAAAABCgAHVx%2BZCeAQVdIAAAAAAA%3D%3D%22%2C%22with_rux_injections%22%3Afalse%2C%22includePromotedContent%22%3Atrue%2C%22withCommunity%22%3Atrue%2C%22withQuickPromoteEligibilityTweetFields%22%3Atrue%2C%22withBirdwatchNotes%22%3Atrue%2C%22withVoice%22%3Atrue%2C%22withV2Timeline%22%3Atrue%7D")
features = urllib.parse.unquote("%7B%22rweb_lists_timeline_redesign_enabled%22%3Atrue%2C%22responsive_web_graphql_exclude_directive_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Afalse%2C%22creator_subscriptions_tweet_preview_api_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22responsive_web_graphql_skip_user_profile_image_extensions_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Atrue%2C%22tweet_awards_web_tipping_enabled%22%3Afalse%2C%22freedom_of_speech_not_reach_fetch_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22longform_notetweets_rich_text_read_enabled%22%3Atrue%2C%22longform_notetweets_inline_media_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D")

data = {
    'variables': variables,
    'features': features
}


5. 提取数据

通过运行代码可以发现,可以看到我们想要的评论都被爬取下来了。然后转换成字典的形式就可以提取出来索要的评论内容了。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,您需要使用Python编写一个爬虫程序,从豆瓣网站上抓取评论信息。以下是一个简单的示例代码,可以帮助您开始编写: ```python import requests from bs4 import BeautifulSoup # 将目标网页的URL替换为您要抓取评论的电影或书籍页面 url = 'https://book.douban.com/subject/1084336/comments/' # 发送GET请求并获取网页HTML内容 response = requests.get(url) html = response.text # 使用BeautifulSoup解析HTML内容,并提取评论信息 soup = BeautifulSoup(html, 'html.parser') comments = soup.find_all('span', class_='short') for comment in comments: print(comment.text) ``` 您可以将上述代码中的URL替换为您要抓取评论的电影或书籍页面,然后运行程序即可抓取评论信息。请注意,豆瓣网站可能会有反爬虫机制,因此请合理使用爬虫,避免频繁抓取同一页面或大量抓取数据。 ### 回答2: Python爬虫抓取豆瓣评论是通过编写程序来自动化地从豆瓣网站上获取评论数据的过程。下面是一个简单的示例来说明如何使用Python爬虫抓取豆瓣评论。 首先,需要安装Python中的一个网络爬虫库,例如BeautifulSoup、Scrapy或Requests等。这些库可以帮助我们更轻松地处理网页和提取所需的数据。 接下来,我们需要确定要爬取的网页URL。在豆瓣上,每个电影都有一个唯一的URL,其中包含了影片的评论信息。 然后,通过发送HTTP请求来获取网页的源代码。在Python中,可以使用Requests库来发送GET请求,获取到的源代码可以保存在一个变量中。 一旦获取到网页的源代码,就可以使用BeautifulSoup库来解析HTML标签并提取所需的评论数据。通过分析网页的结构,找到评论内容所在的标签,然后使用BeautifulSoup的相关方法来提取评论文本。 最后,可以将提取出的评论数据保存到一个文件中,或者进行相应的数据分析和处理。 需要注意的是,爬取豆瓣评论数据可能涉及到网站的反爬措施,例如限制IP访问频率、验证码等。在进行爬取时,应该尊重网站的规则并避免对其造成过大的负担。 综上所述,Python爬虫可以实现对豆瓣评论抓取,并可以通过相关库来处理网页和提取所需数据。使用Python编写爬虫程序可以简化爬取过程,并可以将抓取到的评论数据用于后续的数据分析和处理。 ### 回答3: Python爬虫是一种自动化程序,可以通过网络爬取数据。豆瓣是一个流行的社交媒体平台,用户可以在其上发布评论和评分。以下是关于用Python爬虫抓取豆瓣评论的说明。 首先,我们需要安装相关的Python库,如Requests和BeautifulSoup。这些库可以帮助我们发送HTTP请求并解析HTML页面。使用这些库可以通过URL获取网页的内容,并从HTML中提取所需的数据。 然后,我们需要找到豆瓣网页上评论的URL地址。在豆瓣电影页面上,评论URL一般在网页的源代码中可以找到。我们可以使用Requests库发送一个GET请求来获取评论页面的HTML内容。 接下来,通过解析HTML内容,我们可以找到评论所在的标签和类名。使用BeautifulSoup库可以帮助我们提取这些数据。我们可以使用find_all()函数来找到特定标签和类名的所有实例,并将评论文本提取出来。 最后,我们可以将提取的评论保存到本地或进行进一步的处理和分析。可以使用Python的文件写入功能将评论数据保存为文本文件。如果需要进行进一步的处理,还可以使用Python的数据处理和分析库,如Pandas和NumPy。 需要注意的是,使用Python爬虫进行数据抓取时,要遵守网站的使用规则。不得滥用爬虫或对网站进行过多的请求,以免给网站带来压力或造成不必要的困扰。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值