网页中的二维表转成一维表
本帖最后由 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")
后面不知道怎么写好了。
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() 为啥print(result)只返回“[]” 本帖最后由 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的搜索出的结果:
复制的Xpath 如下:/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody
结果还是“[]” Vastsea 发表于 2021-10-15 10:59
复制的Xpath 如下:/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody
结果还是 ...
把你的代码贴一下。 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() 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发我下。 文件存到哪儿了?
搜索都没搜到。
本帖最后由 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
生成文件,见附件。谢谢!
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() 行列号不是顺着下来的
行是 3、5、7、9
列是5、7、8、10、11、13、14、16
结果是这样的,不是想要的那样。
页:
[1]