python - 当我使用beautifulsoup 抓取时,表格的内容被隐藏了
问题描述
这是我的情况的一个例子。
其实这里的网站页面左侧有一个表格,我想用Python来掌握。原始html文件的文件结构如下图所示:
'id=companylist' 中存在一些样本的信息。因此,我编写了下面的代码来阅读它们:
url = 'http://182.148.109.184/gisnavigation!citysuriverPage.action?regioncode=510300#'
page = requests.get(url, headers={'Referer' : url})
soup = BeautifulSoup(page.text, 'html.parser')
table = soup.find("tbody", {"id": "companylist"})
但是,输出只是两行没有有用信息的字符串。
[<tbody id="companylist">
</tbody>]
有谁知道正确的治疗方法吗?
解决方案
如评论中所述,内容由在您的浏览器中运行的 JavaScript 呈现。您可以使用在幕后运行 Chromium 的Requests-HTML 。
**Code:**
from requests_html import HTMLSession
url = 'http://182.148.109.184/gisnavigation!citysuriverPage.action?regioncode=510300#'
session = HTMLSession()
r = session.get(url)
r.html.render()
table = r.html.find('#companylist')[0]
print(table.text)
输出:
富顺首创水务有限公司
自贡市
污水厂
...
自贡张家坝氯碱化工有限责任...
自贡市
废气
推荐阅读
- android - 我如何使用谷歌地图获取当前位置和目的地位置之间的距离和持续时间
- c++ - 如何在 cout 中使用按位移位?
- css - 关键帧 - 渐变背景没有动画
- amazon-web-services - 从 (python) lambda 在 EC2 上运行批处理文件
- html - 如何删除具有 display 属性和 inline-block 值的 div 内的填充
- ios - inputAccessoryView 卡在屏幕底部
- git - 命名现有的 git stash
- javascript - 角脚本的颜色变化
- tsql - 将 Binary(64) 列中的值与 HASHBYTES('SHA2_512', 'SomeString') 返回的值进行比较
- javascript - 无法使用 Axios 在 formData 中发送数组