Vastsea 发表于 2021-10-13 16:15:44

网页中的二维表转成一维表

本帖最后由 Vastsea 于 2021-10-13 16:20 编辑

网页中的二维表如何用Python爬成一维表。网页文件见Desktop.zip

import requests
from bs4 import BeautifulSoup
url = "http://192.168.70.24/web/guest/cn/websys/status/getUnificationCounter.cgi"
req = requests.get(url)
html = req.text
bs = BeautifulSoup(html,"html.parser")

后面不知道怎么写好了。

suchocolate 发表于 2021-10-13 17:44:38


import requests
from lxml import etree


def main():
    url = 'http://192.168.70.24/web/guest/cn/websys/status/getUnificationCounter.cgi'
    r = requests.get(url)
    html = etree.HTML(r.text)
    result = html.xpath('//tbody//tbody/tr//text()')
    print(result)


if __name__ == '__main__':
    main()

Vastsea 发表于 2021-10-14 14:48:50

为啥print(result)只返回“[]”

suchocolate 发表于 2021-10-14 15:17:44

本帖最后由 suchocolate 于 2021-10-14 15:21 编辑

Vastsea 发表于 2021-10-14 14:48
为啥print(result)只返回“[]”

由于无法访问你提供的内网的网页,我只是尽力根据你提供的html来猜猜xpath路径。
你可以根据实际情况调整xpath,调整方法:
1)浏览器打开网页,右键审查元素。
2)再右键你想看的元素,弹出菜单,复制,选中xpath
3)把xpath添加到上面html.xpath()里

以下是加载你提供的html的搜索出的结果:

Vastsea 发表于 2021-10-15 10:59:44

复制的Xpath 如下:/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody

结果还是“[]”

suchocolate 发表于 2021-10-15 11:12:24

Vastsea 发表于 2021-10-15 10:59
复制的Xpath 如下:/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody

结果还是 ...

把你的代码贴一下。

Vastsea 发表于 2021-10-15 12:15:29

suchocolate 发表于 2021-10-15 11:12
把你的代码贴一下。

import requests
from lxml import etree


def main():
    url = 'http://192.168.70.24/web/guest/cn/websys/status/getUnificationCounter.cgi'
    r = requests.get(url)
    html = etree.HTML(r.text)
    result = html.xpath('/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody')
    print(result)


if __name__ == '__main__':
    main()

suchocolate 发表于 2021-10-15 15:56:09

import requests
from lxml import etree


def main():
    url = 'http://192.168.70.24/web/guest/cn/websys/status/getUnificationCounter.cgi'
    r = requests.get(url)
    with open('r.txt', 'w', encoding='utf-8') as f:
      f.write(r.text)


if __name__ == '__main__':
    main()
生成的r.txt发我下。

Vastsea 发表于 2021-10-15 16:12:34

文件存到哪儿了?
搜索都没搜到。

suchocolate 发表于 2021-10-21 09:11:25

本帖最后由 suchocolate 于 2021-10-21 09:15 编辑

Vastsea 发表于 2021-10-15 16:12
文件存到哪儿了?
搜索都没搜到。

ipython.exe所在路径。
或者自定义路径:with open('d:/r.text', 'w') as f:

Vastsea 发表于 2021-10-21 11:02:12

生成文件,见附件。谢谢!

suchocolate 发表于 2021-10-25 13:46:57

Vastsea 发表于 2021-10-21 11:02
生成文件,见附件。谢谢!


import requests
from lxml import etree


def main():
    url = 'http://192.168.70.24/web/guest/cn/websys/status/getUnificationCounter.cgi'
    r = requests.get(url)
    html = etree.HTML(r.text)
    result = html.xpath('/html/body/table/tr/td/table//text()')
    pt = []
    for i in result:
      if ' ' not in i:
            pt.append(i)
    print(pt)


if __name__ == '__main__':
    main()

Mrload 发表于 2021-10-25 17:37:24

行列号不是顺着下来的
行是 3、5、7、9
列是5、7、8、10、11、13、14、16

Vastsea 发表于 2021-10-26 09:20:52

结果是这样的,不是想要的那样。
页: [1]
查看完整版本: 网页中的二维表转成一维表