gpt4 book ai didi

python - 使用 Python 抓取 HTML

转载 作者:行者123 更新时间:2023-11-28 00:41:30 27 4
gpt4 key购买 nike

很抱歉,如果这是重复的,但我一直在查看关于此的大量 StackOverflow 问题,但找不到类似的情况。我可能在这里树错了树,但我是编程新手,所以即使有人可以让我走上正确的道路,它也会提供极大的帮助。

我正在尝试从一个只能使用 python 3.7 和 Beautiful soup 4 从我们的网络内部访问的网站上抓取数据。我的第一个问题是,对于新手程序员来说,这是最佳实践方法吗?我正在研究类似 javascript 而不是 python 的东西?

我的第二个问题是该网站的根 html 文件具有以下 html 标记 xmlns="http://www.w3.org/1999/xhtml"。 BeautifulSoup4 是否适用于 xhtml?

我承认我对网络开发一无所知,所以即使有人可以给我一些关键字或提示来开始研究,让我走上一条更有成效的道路,我也会很感激。现在我最大的问题是我不知道我不知道什么,所有 python 网络抓取示例都在更简单的 .html 页面上工作,而这个网页树由多个 html/css/jpg 和 gif 文件组成。

谢谢,-丹麦人

最佳答案

Python、requests 和 BeautifulSoup 绝对是必经之路,尤其是对于初学者而言。 BeautifulSoup 适用于 html、xml 等的所有变体。

您将需要安装 python,然后安装 requests 和 bs4。通过阅读 requests docs 可以很容易地做到这一点和 bs4 docs .

如果您还不知道,我建议您学习一些 python3 的基础知识。

这里是一个获取您请求的页面标题的简单示例:

import requests
from bs4 import BeautifulSoup as bs

url = 'http://some.local.domain/'

response = requests.get(url)
soup = bs(response.text, 'html.parser')

# let's get title of the page
title = soup.title
print(title)

# let's get all the links in the page
links = soup.find_all('a')
for link in links:
print(link.get('href'))
link1 = link[0]
link2 = link[1]

# let's follow a link we find in the page (we'll go for the first)
response = requests.get(link1, stream=True)
# if we have an image and we want to download it
if response.status_code == 200:
with open(url.split('/')[-1], 'wb') as f:
for chunk in response:
f.write(chunk)

# if the link is another web page
response = requests.get(link2)
soup = bs(response.text, 'html.parser')

# let's get title of the page
title = soup.title
print(title)

继续寻找有关请求的教程,而 BeautfiulSoup 有很多... like this one

关于python - 使用 Python 抓取 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53254158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com