使用 bs4 python 抓取时不呈现完整的 HTML

加根甘纳巴迪

我正在尝试从 geeksforgeeks 中为我自己的简单抓取和分析项目抓取数据。

我正在使用bs4requests- python2

我需要抓取这个网址上的所有问题,所以我这样做,

ques_page = requests.get('https://practice.geeksforgeeks.org/explore/?page=1')
ques_soup = BeautifulSoup(ques_page.text, 'lxml')
get_ques = ques_soup.find('div', class_="panel problem-block")

该类panel problem-block包含问题数据。

但是,当我查看刮擦时html-print(ques_page.text)根本不包含div

查看页面源代码(problemFeed此 div 的Ctrl-F是所有问题所在的位置)

<div id="problemFeed" class="row" data-masonry-options='{"itemSelector": ".item" }'></div>

div是空的!因此我无法从中抓取任何数据!这怎么可能,因为我可以div在控制台中查看其中的所有内容,但不能在页面源代码中或在抓取期间查看!

尤文克

您可以通过 post 请求从 Ajax 端点获取它

data = {'page': 1, 'query' : 'page1'} # 2, page2...
ques_page = requests.post('https://practice.geeksforgeeks.org/ajax/practicePageAjax.php', data=data)
ques_soup = BeautifulSoup(ques_page.text, 'lxml')
get_ques = ques_soup.find('div', class_="panel problem-block")
print(get_ques)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章