在Vkontakte的帖子下有评论的链接。如何从链接获取评论内容

时间:2020-06-15 14:42:18

标签: python parsing beautifulsoup

我尝试使用beautifulsoup,但是由于某种原因而解析页面时,将提供移动版本,其中指向注释的链接具有不同的外观。使用vk_api,我需要指定组ID。我很乐意给您任何建议!谢谢!这是链接"link"。如果单击它,将出现注释“性别歧视”。我想以编程方式在python中实现。如果您能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我理解的正确,那么您想从提供的包含reply=<some number>的链接中提取“性别歧视”一词。

例如,您可以这样做:

import requests
import urllib.parse
from bs4 import BeautifulSoup


url = 'https://vk.com/wall-12648877_5011889?reply=5011893'
reply_number = urllib.parse.parse_qs(urllib.parse.urlparse(url).query)['reply'][0]

soup = BeautifulSoup(requests.get(url).content, 'html.parser')
text = soup.select_one('div.ReplyItem:has(a[name="reply{}"]) .ReplyItem__body'.format(reply_number)).text.strip()
print(text)

打印:

sexism

编辑:

import requests
import urllib.parse
from bs4 import BeautifulSoup


url = 'https://vk.com/wall-12648877_5013166?reply=5013335&thread=5013176'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0'}
reply_number = urllib.parse.parse_qs(urllib.parse.urlparse(url).query)['reply'][0]

soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')

text = soup.select_one('div.ReplyItem:has(a[name="reply{reply_number}"]) .ReplyItem__body, .reply_text div[id$="_{reply_number}"]'.format(reply_number=reply_number)).text.strip()
print(text)

打印:

ахаха, опять ты. и опять твою фотку запостили в комментах, просто ОР, в прошлый раз ты что-то про геев говорил кажется. ))