无法使用Beautifulsoup从网站上阅读表格

时间:2018-03-18 16:18:25

标签: python beautifulsoup python-requests

我正在尝试使用以下代码阅读网站的内容。

import requests
from bs4 import BeautifulSoup

url  = "https://chartink.com/screener/test-121377" 
r    = requests.get(url)
data = r.text
soup = BeautifulSoup(data,"html.parser")

print(soup)

在结果中,当我在浏览器中手动“检查”元素时,我无法看到可以看到的表格。

enter image description here

使用硒可能是一种解决方案。但如果可能的话,我正在寻找其他一些替代解决方案。

关于如何从HTML中的底层脚本读取数据的任何想法?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您应该尝试新发布的requests_html库,它能够处理动态生成的项目。如果您遵守我刚才所说的内容,那么这就是您的脚本的样子:

import requests_html

session = requests_html.HTMLSession()
r = session.get('https://chartink.com/screener/test-121377')
r.html.render(sleep=5)
items = r.html.find("table#DataTables_Table_0",first=True)
for item in items.find("tr"):
    data = [td.text for td in item.find("th,td")]
    print(data)

输出:

['Sr.', 'Stock Name', 'Symbol', 'Links', '% Chg', 'Price', 'Volume']
['1', 'Axis Bank Limited', 'AXISBANK', 'P&F | F.A', '-1.33%', '522.6', '12,146,623']
['2', 'Reliance Industries Limited', 'RELIANCE', 'P&F | F.A', '-1.29%', '900.05', '14,087,564']
['3', 'Tata Steel Limited', 'TATASTEEL', 'P&F | F.A', '-1.89%', '600.2', '11,739,582']