首页 > 解决方案 > 当我使用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>]

有谁知道正确的治疗方法吗?

标签: pythonweb-scrapingbeautifulsoup

解决方案


如评论中所述,内容由在您的浏览器中运行的 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)

输出:

富顺首创水务有限公司
自贡市
污水厂
...
自贡张家坝氯碱化工有限责任...
自贡市
废气

推荐阅读