【问题标题】:Scrape data from website with frames or flexbox using python requests and BeautifulSoup使用 python 请求和 BeautifulSoup 从带有框架或 flexbox 的网站中抓取数据
【发布时间】:2021-02-28 19:21:58
【问题描述】:

我一直在尝试解决这个问题,但没有运气。我发现了一个我认为会有所帮助的线程 (How to scrape data from flexbox element/container with Python and Beautiful Soup),但我似乎无法取得任何进展。

我要抓取的网站是...http://www.northwest.williams.com/NWP_Portal/。特别是我想从“存储级别”的选项卡/框架中获取数据,但对于我来说,我似乎无法导航到正确的位置来获取数据。我已经尝试了下面代码的各种迭代,但没有成功。我已将“lxml”更改为“html.parser”,查找表,查找“tr”等,但代码始终返回空。我也试过查看网络信息,但是当我点击任何选项卡(系统状态、PAL/系统平衡等)时,我看不到网络活动有任何变化。我敢肯定,我忽略了一些简单的事情,但我就是不能把手指放在它上面。

from bs4 import BeautifulSoup as soup
import requests

url = 'http://www.northwest.williams.com/NWP_Portal/'

r = requests.get(url)

html = soup(r.content,'lxml')

page = html.findAll('div',{'class':'dailyOperations-panels'})

如何“导航”到“存储级别”框架/选项卡?我真正要寻找的 html 是什么?我可以只用请求和漂亮的汤来做到这一点吗?我不反对使用 Selenium,但我以前没有使用过它,如果可能的话,我更愿意只使用 requests 和 BeautifulSoup。

提前致谢!

【问题讨论】:

  • 其他人可以提供任何见解吗?似乎当我请求主 URL 时,我得到的只是顶部的标题、左侧的菜单和右侧的天气。我似乎无法弄清楚如何进入数据的中间位置。检查网络活动我得到的唯一活动是单击顶部的日常操作链接。主框架内的每次点击都不会触发任何活动。抱歉,如果我没有正确解释这一点。我只需要帮助获取数据,之后我应该能够检索数据。谢谢。

标签: python html beautifulsoup flexbox


【解决方案1】:

嘿,我注意到你正试图从一个不起作用的 div 中获取“dailyOperations-panels”。

【讨论】:

  • 我想这就是我苦苦挣扎的地方。我尝试了一堆不同的 findAll,但似乎无法获得正确的组合。我试过 ``` page = html.findAll('table',{'class':'dailyOperations-panels'}) ``` 但这也无济于事。我注意到的另一个线程表明 OP 想太多了,但我开始怀疑我是否试图过于简单化并且它不像我想象的那么简单。
猜你喜欢
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 2020-10-09
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多