python beautifulsoup给出表的特定部分

时间:2018-10-02 13:05:34

标签: python beautifulsoup

giving expecting

page = requests.get("http://www.freejobalert.com/upsc-recruitment/16960/#Engg-Services2019")
c = page.content
soup=BeautifulSoup(c,"html.parser")
tables=soup.find_all("table",{"style":"width: 500px;"})
print(tables)

在此页面中,有10个表格。但是它只给出表的特定部分,而不是完整表。 它没有完全给所有表。 我期望像第二张桌子。但就像第一个屏幕截图一样

1 个答案:

答案 0 :(得分:1)

此代码给出了14个条目,其中不应考虑第一个和最后一个。最后一个是JavaScript代码。

您只需要将解析器更改为更宽松的解析器,即可在https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser中找到更多信息。

page = requests.get("http://www.freejobalert.com/upsc-recruitment/16960/#Engg-Services2019")
c = page.content
soup=BeautifulSoup(c,"html5lib")
tables=soup.find_all("table")

for table in tables[1:-1]:
      print (table.text)

如果更改解析器显示错误,则在您的环境中安装html5lib,如下所示     pip3安装html5lib