我正在尝试从geeksforgeeks抓取数据以进行自己的简单抓取和分析项目。
我正在使用bs4
和requests
-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
的Ctrl-F)
<div id="problemFeed" class="row" data-masonry-options='{"itemSelector": ".item" }'></div>
此div
为空!因此无法从中抓取任何数据!这怎么可能,因为我可以在控制台中查看此div
中的所有内容,但不能在页面源代码中或在抓取过程中查看所有内容!
答案 0 :(得分:0)
您可以通过发布请求从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)