python - 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)
解决方案
您正在寻找的元素是由加载标记后执行的 JavaScript 生成的。request.get
仅获取页面的源代码,BeautifulSoup 仅允许您检查所述源代码。两者都不执行任何存在的 JavaScript。
我相信,您要查找的数据是通过 POST 请求与以下 URL https://mayaapi.tase.co.il/api/report/filter分开请求的。
推荐阅读
- react-native - 父子onpress功能
- excel - 自动填充范围内的 2 个变量
- sql - 我怎样才能在第一列中具有相同的值,但前提是第二列不同
- regex - Apache - 将以....开头的“URL文件夹”重定向到特定的真实目录
- angular - 如何在 Angular 9 中测试 toPromise
- python-3.x - Microsoft Bot Teams 错误“未为 Teams 频道上的 bot 启用 SSO。”
- c - RSA 加密。EVP_PKEY_CTX_new 失败
- python - 复制文件时出现 FileNotFoundError
- python-3.x - 散点图中的颜色点按位置(matplotlib)
- windows - 批处理文件中的通配符未按预期工作