带有 url 的 wrok 的 Python 解析器

Python parser for wrok with url

提问人:OUTWEST 提问时间:10/5/2023 最后编辑:OUTWEST 更新时间:10/17/2023 访问量:62

问:

我试图编写一个 python 程序,在浏览器中打开一个页面,然后通过元素代码打开代码(使用 f12,而不是 ctrl+U)并遍历此代码中的所有“跨度”,但我还没有找到如何做到这一点,也许在这里谁知道如何做?

P.S. 根据我所写的内容,我假设不是通过这一行: BeautifulSoup(response.text, 'html.parser') 因为它是 ctrl+u 我能做的所有事情的替代品,但这只是一个不必要的

import requests
from bs4 import BeautifulSoup

url = 'https://sites_url'

response = requests.get(url)

if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'html.parser')

    all_text = ''

    span_elements = soup.find_all('span')
    for span in span_elements:
        text = span.get_text()
        all_text += text + ' ' 
    all_text = all_text.strip()

    print('span:', all_text)
else:
    print('cant open.')`

附言2.0 你可以看到 YouTube 有 304 个跨度,我希望我的 prog 搜索所有 304 个位置,但如果你现在使用它,如果你按 Ctrl+U,如果你按 F12,而不是 Ctrl + U,将在 Ctrl+U 中找到 prog

python html 解析 url python-requests

评论


答:

0赞 Eric yink 10/5/2023 #1

对不起,你能更清楚地解释你的问题吗?根据我的测试,我认为您的代码可以运行良好......

我的测试: 目标 HTML:

<span>this is text</span>
<span>this is text2</span>

结果:

span:这是文本 这是文本2

--在2023.10.17中编辑

迟到的回复。我现在明白你的问题了。这是因为你看到的 html 元素之前是由你的浏览器渲染的,但如果你使用 curl 或 python 请求来访问,你只能得到源代码。(你可以搜索谷歌来了解你的浏览器是如何用源代码呈现html的)

要解决这个问题,你可以使用 python selenium 包。这是一个用于模拟浏览器的 python 包。通过使用它,您可以获得浏览器呈现的 html。

评论

0赞 OUTWEST 10/5/2023
我可以解释一下,例如在许多网站上尝试我的代码,例如 youtube,我的程序什么也没写,因为如果你按 ctrl+u 你找到代码,当你按 ctrl+f 时,你会看到 1 个跨度,而他的跨度是空的,但我希望我的程序在我可以用 f12 打开的 html 页面代码中搜索跨度, 只需尝试使用 F12 和 Ctrl+U 打开 2 个不同的代码
0赞 Eric yink 10/5/2023
你能给出一个更详细的例子,包括一些代码和结果图像吗?
0赞 OUTWEST 10/6/2023
现在您可以随心所欲地看到 2 张照片
0赞 Diego Borba 10/7/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。