首页 > 解决方案 > python中的网络抓取不返回我想要的元素

问题描述

我正在尝试完成网络抓取,但直到现在我运行它时我才能在代码中找到我需要使用的元素,它返回“NONE”(我想获取标题、时间和行之后标题):

import requests 
from bs4 import BeautifulSoup

page = requests.get('https://maya.tase.co.il/reports/company?q=%7B%22DateFrom%22:%222019-09-26T21:00:00.000Z%22,%22DateTo%22:%222020-03-26T22:00:00.000Z%22,%22events%22:%5B%5D,%22subevents%22:%5B%5D,%22Page%22:1,%22entity%22:1704%7D' , headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(page.content, 'html.parser')
week = soup.find(_class='feedItemMessage')
print(week)

标签: pythonweb-scraping

解决方案


您正在寻找的元素是由加载标记后执行的 JavaScript 生成的。request.get仅获取页面的源代码,BeautifulSoup 仅允许您检查所述源代码。两者都不执行任何存在的 JavaScript。

我相信,您要查找的数据是通过 POST 请求与以下 URL https://mayaapi.tase.co.il/api/report/filter分开请求的。


推荐阅读