如何使用python中的BeautifulSoup库从具有“查看更多”选项的网站上抓取数据

妮维达

我正在尝试解析来自此网站链接的评论:我需要获得 1000 条评论,默认情况下它只显示 10 条

我想获得 1000 条评论,默认情况下只显示 10 条。单击“查看更多”后,我无法找到获取网页上显示内容的方法

到目前为止,我有以下代码:

import urllib.request
from bs4 import BeautifulSoup
import sys

non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)

response = urllib.request.urlopen("https://www.mygov.in/group-issue/share-
your-ideas-pm-narendra-modis-mann-ki-baat-26th-march-2017/")

srcode = response.read()

soup = BeautifulSoup(srcode, "html.parser")

all_comments_div=soup.find_all('div', class_="comment_body");

all_comments=[]
for div in all_comments_div:
    all_comments.append(div.find('p').text.translate(non_bmp_map))



print (all_comments)
print (len(all_comments))
妈妈

您可以使用 while 循环来获取下一页
(即当有下一页且所有评论少于 1000 时)

import urllib.request
from bs4 import BeautifulSoup
import sys

non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
all_comments = [] 
max_comments = 1000
base_url = 'https://www.mygov.in/'
next_page = base_url + '/group-issue/share-your-ideas-pm-narendra-modis-mann-ki-baat-26th-march-2017/'

while next_page and len(all_comments) < max_comments : 
    response = response = urllib.request.urlopen(next_page)
    srcode = response.read()
    soup = BeautifulSoup(srcode, "html.parser")

    all_comments_div=soup.find_all('div', class_="comment_body");
    for div in all_comments_div:
        all_comments.append(div.find('p').text.translate(non_bmp_map))

    next_page = soup.find('li', class_='pager-next first last')
    if next_page : 
        next_page = base_url + next_page.find('a').get('href')
    print('comments: {}'.format(len(all_comments)))

print(all_comments)
print(len(all_comments))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

烦恼如何从该网站上抓取数据(使用R)

如何使用python和beautifulsoup4循环抓取网站中多个页面的数据

如何使用BeautifulSoup从网站上获取所有标头?

如果有“显示更多”按钮,如何从网站上抓取信息?

如何使用VBA从Bloomberg网站上抓取数据

无法从具有不同标签和日期的网站上抓取数据

使用python中的BeautifulSoup从网站抓取报告

如何使用Flutter从网站上抓取图像?

从具有<div标签的网站上抓取/识别表格

如何使用Beautifulsoup从网站上抓取产品价格?

如何使用BeautifulSoup从eCom网站上抓取<li>?

使用组合框VBA中的选项来抓取网站数据

如何从网站上抓取数据?

如何使用python从具有多个动态选择字段的页面中抓取数据?

如何从网站上抓取所有数据?

如何使用 php 和 mysql 从网站上抓取日期并将该日期存储在数据库中?

如何使用 VBA 从网站上抓取选项值

如何从网站上抓取所有图像?

如何在网站上设置下拉框,以便选择选项并抓取数据

如何使用beautifulsoup从python中的url中抓取数据

如何将网站上所有抓取的数据保存在熊猫数据框中?

如何使用节点从网站上抓取数据

如何使用异常表格从选举网站上抓取数据

如何使用BeautifulSoup从python网站中未加载的选项卡中抓取表格数据

无法使用 BeautifulSoup 从网站上抓取所有数据

使用 python 抓取网站 - BeautifulSoup

使用硒在 PYTHON 中具有动态小键盘虚拟键盘的网站上输入密码

如何使用 Scrapy 在可以选择加载更多帖子的网站上抓取数据?

如何使用 Python 和 BeautifulSoup 从 html 表中抓取数据?