2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Vous trouverez ci-dessous un exemple de robot d'exploration Web simple écrit en Python qui explorera une certaine page Web (par exemple, disonshttps://example.com
, mais veuillez noter que dans l'utilisation réelle, nous devons le remplacer par le titre (Titre) d'un vrai site Web dont l'exploration est autorisée) et l'imprimer. Étant donné que l’accès direct et la suppression de sites Web réels peuvent impliquer des problèmes de droit d’auteur et juridiques, nous ne fournissons ici qu’un exemple conceptuel.
Pour accomplir cette tâche, nous utiliserons Pythonrequests
bibliothèque pour envoyer des requêtes HTTP et utiliserBeautifulSoup
Bibliothèque pour analyser le contenu HTML. Si nous n'avons pas encore installé ces bibliothèques, nous pouvons les installer via pip :
- bash复制代码
-
- pip install requests beautifulsoup4
Voici l'exemple de code complet :
- # 导入必要的库
- import requests
- from bs4 import BeautifulSoup
-
- def fetch_website_title(url):
- """
- 抓取指定网页的标题并返回。
-
- 参数:
- url (str): 需要抓取的网页的URL。
-
- 返回:
- str: 网页的标题,如果抓取失败则返回None。
- """
- try:
- # 发送HTTP GET请求
- response = requests.get(url)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 使用BeautifulSoup解析HTML内容
- soup = BeautifulSoup(response.text, 'html.parser')
-
- # 查找网页的<title>标签
- title_tag = soup.find('title')
-
- # 如果找到<title>标签,则返回其内容
- if title_tag:
- return title_tag.get_text(strip=True)
- else:
- return "No title found."
- else:
- return f"Failed to retrieve the webpage. Status code: {response.status_code}"
- except requests.RequestException as e:
- return f"Error fetching the webpage: {e}"
-
- # 示例URL(请替换为我们要抓取的网页的URL)
- url = 'https://example.com'
-
- # 调用函数并打印结果
- title = fetch_website_title(url)
- print(f"The title of the webpage is: {title}")
Avis:
(1) En raison dehttps://example.com
est un espace réservé par exemple, nous devons donc le remplacer par une URL de page Web valide qui permet l'exploration lors de l'exécution.
(2) Le robot d'exploration doit se conformer aux exigences du site Web cible lors de son exécution.robots.txt
Le document stipule le respect des droits d'auteur et des restrictions d'accès au site Internet.
(3) Certains sites Web peuvent avoir mis en place des mécanismes anti-crawler, tels que la vérification de l'agent utilisateur, la limite de fréquence, etc. Nous devrons peut-être modifier nos en-têtes de requête (tels queUser-Agent
) ou utilisez des méthodes telles que des proxys pour contourner ces restrictions.
(4) Pour des structures de pages Web plus complexes ou des exigences de capture de données plus avancées, nous devrons peut-être en savoir plus sur HTML, les sélecteurs CSS, XPath et les requêtes réseau.
Vous trouverez ci-dessous un exemple de code de robot d'exploration Python plus détaillé, cette fois j'utiliserairequests
bibliothèque pour envoyer des requêtes HTTP et utiliserBeautifulSoup
bibliothèque pour analyser le contenu HTML afin d'explorer un vrai site Web (par exemple, nous utilisonshttps://www.wikipedia.org
A titre d'exemple, mais veuillez noter que l'exploration réelle doit être conforme aux exigences du site Web.robots.txt
réglementations et politique de droits d’auteur).
Tout d'abord, assurez-vous que nous avons installérequests
etbeautifulsoup4
bibliothèque. S'il n'est pas installé, utilisez pip pour l'installer :
- bash复制代码
-
- pip install requests beautifulsoup4
Nous pouvons ensuite utiliser le code suivant pour récupérer et imprimer le titre de la page d'accueil de Wikipédia :
- # 导入必要的库
- import requests
- from bs4 import BeautifulSoup
-
- def fetch_and_parse_title(url):
- """
- 发送HTTP GET请求到指定的URL,解析HTML内容,并返回网页的标题。
-
- 参数:
- url (str): 需要抓取的网页的URL。
-
- 返回:
- str: 网页的标题,如果抓取或解析失败则返回相应的错误消息。
- """
- try:
- # 发送HTTP GET请求
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
- } # 设置User-Agent来模拟浏览器访问
- response = requests.get(url, headers=headers)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 使用BeautifulSoup解析HTML内容
- soup = BeautifulSoup(response.text, 'html.parser')
-
- # 查找网页的<title>标签
- title_tag = soup.find('title')
-
- # 提取并返回标题内容
- if title_tag:
- return title_tag.get_text(strip=True)
- else:
- return "No title found in the webpage."
- else:
- return f"Failed to retrieve the webpage. Status code: {response.status_code}"
- except requests.RequestException as e:
- return f"Error fetching the webpage: {e}"
-
- # 示例URL(这里使用Wikipedia的主页作为示例)
- url = 'https://www.wikipedia.org'
-
- # 调用函数并打印结果
- title = fetch_and_parse_title(url)
- print(f"The title of the webpage is: {title}")
Ce code définit d'abord un en-tête de requête (headers
), qui contient unUser-Agent
champ, il s'agit de simuler un véritable accès au navigateur, car certains sites Web vérifieront l'en-tête de la requête pour empêcher l'accès du robot. Il envoie ensuite une requête GET à l'URL spécifiée et utilise BeautifulSoup pour analyser le contenu HTML renvoyé.Ensuite, il recherche le code HTML<title>
baliser et extraire son contenu textuel comme titre de la page Web. Enfin, il imprime le titre sur la console.
Veuillez noter que même si cet exemple utilise Wikipédia, dans un projet réel, nous devons toujours respecter les spécifications du site Web cible.robots.txt
de documentation et de droits d'auteur pour garantir que nos pratiques d'exploration sont légales et éthiques.