提问人:OUTWEST 提问时间:10/5/2023 最后编辑:OUTWEST 更新时间:10/17/2023 访问量:62
带有 url 的 wrok 的 Python 解析器
Python parser for wrok with url
问:
我试图编写一个 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
答:
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 张照片
评论