首页 > 解决方案 > 如何找到一个独特的 HTML 元素?

问题描述

我正在查看一个带有一堆名为“tspan”的标签的 URL。这可能是隐藏的,还是以某种方式没有暴露?

如何获取“extract”以及“source_load”和所有其他 tspan 元素,将所有内容加载到列表中,然后将列表转储到桌面上的文件中?这是我正在测试的代码。

from bs4 import BeautifulSoup as bs
import webbrowser
import requests


REQUEST_URL = 'https://corp-intranet.com/admin/'
response = requests.get(REQUEST_URL, auth=('em_email', 'pswd'))
xml_data = response.text.encode('utf-8', 'ignore')


url_list = ['https://corp-intranet.com/admin/ad_history']

for link in url_list:
    File = webbrowser.open(link)
    File = requests.get(link)
    data = File.text
    soup = bs(data, "lxml") 
    all_text = []
    for link in soup.findAll('tspan'):
        all_text.append(link.get('tspan'))
        print(all_text)

with open('C:/Users/ryans/OneDrive/Desktop/test.txt', 'wb') as outfile:
    for f in all_text:
        with open(f, '\n') as infile:
            outfile.write(f.encode('utf-8'))
            outfile.write(infile.read())

标签: pythonpython-3.x

解决方案


您需要使用get_text()方法来获取标签的文本。tag.get(...)用于获取标签内的内容。尝试all_text.append(link.get_text())

此外,如果您需要的内容是动态加载的并且没有出现在原始页面源中,您将不会在请求中看到它。您可以使用 selenium 来克服这个问题(此处为快速入门指南)。


推荐阅读