BeautifulSoup -如何根据页面顺序选择元素?



我实际上正在尝试解析一个项目的维基百科页面。我不知道如何使我的程序自动化,以便让他根据页面顺序获得元素。这个页面:https://fr.wikipedia.org/wiki/Manga.

我想以相同的顺序获得h2标签和p标签的文本,因为它们出现在维基百科上。这是为了在将来将它们以正确的顺序放入数据库中,在同一个级别上的表(行)中:1标题->它的段落)我尝试了这个循环,并查看了BeautifulSoup的文档,但找不到解决方案。这是我的实际代码:

import numbers
import urllib.request
from bs4 import BeautifulSoup 
quote_page ='https://fr.wikipedia.org/wiki/Manga#:~:text=Un%20manga%20(%E6%BC%AB%E7%94%BB)%20est%20une,quelle%20que%20soit%20son%20origine.'
page = urllib.request.urlopen(quote_page)
soup = BeautifulSoup(page, 'html.parser')
for element in soup.select('h2 ~ p'):
for e in soup.select('h2 > span.mw-headline'):
print(e.text)
print(element.text)
#not working for the loops

由于问题/预期的输出不是那么清楚,这应该指向一个可能的方向。

你可以选择你的标题,迭代它的.next_siblingsbreak迭代,如果有一个特定的标签:

import urllib.request
from bs4 import BeautifulSoup 
quote_page ='https://fr.wikipedia.org/wiki/Manga#:~:text=Un%20manga%20(%E6%BC%AB%E7%94%BB)%20est%20une,quelle%20que%20soit%20son%20origine.'
page = urllib.request.urlopen(quote_page)
soup = BeautifulSoup(page, 'html.parser')
for e in soup.select('h2 span.mw-headline'):
print(e.text)
for t in e.parent.next_siblings:
if t.name in ['h2','h4']:
break
if t.name == 'p':
print(t.text)

输出:

Étymologie
Le mot japonais « manga » souvent traduit littéralement par « image dérisoire » ou « dessin non abouti », est composé de « ga » (画), qui désigne la représentation graphique (« dessin », « peinture » ou toute image dessinée — comme l'estampe), et « man » (漫), « involontaire », « divertissant », « sans but », mais aussi « exagérer », « déborder » (qui peut être interprété comme caricature), ainsi qu'« au fil de l'idée ». Ainsi on pourrait aussi bien traduire ce mot par « dessin au trait libre », « esquisse au gré de la fantaisie », « image malhabile » ou tout simplement caricature ou grotesque dans le sens de Léonard de Vinci.
Le terme devient courant à partir de la fin du XVIIIe siècle avec la publication d'ouvrages tels que Mankaku zuihitsu (1771) de Kankei Suzuki, Shiji no yukikai (1798) de Kyōden Santō ou Manga hyakujo (1814) de Minwa Aikawa. Également en 1814, Hokusai, futur graveur de La Grande Vague de Kanagawa, donne à ses recueils d'estampes parfois grotesques le titre Hokusai manga. C'est ce dernier ouvrage qui fait connaître le mot en Occident. Il aurait été ainsi choisi pour son analogie avec un terme similaire dans l'ancien temps mais dont l'écriture diffère, et qui décrit la conservation de proies dans les becs des pélicans[7] indiquant des scènes prises sur le vif — comme l'oiseau fondant sur sa proie.
Il ne prend le sens précis de « bande dessinée » qu'au cours du XXe siècle, avec l'introduction de celle-ci au Japon. Lorsqu'elle y devient très populaire, après 1945 et grâce à Osamu Tezuka, le terme s'impose pour finir par ne plus désigner qu'elle. C'est ce terme qui a été utilisé à l'étranger (France, États-Unis, Allemagne, etc.), pour caractériser la bande dessinée japonaise, dont il est devenu un synonyme, et parfois grossièrement ramené à un genre.
Genre et nombre du mot « manga » en français
Le mot « manga » est pleinement intégré dans la langue française, comme l'atteste son intégration dans les dictionnaires usuels. Ceux-ci le donnent comme masculin (les mots japonais, eux, n'ont pas de genre grammatical), et c'est le genre qui prédomine largement. Toutefois, la première utilisation du mot en français revient à Edmond de Goncourt en 1895, dans une étude artistique dédiée à Hokusai[8], où il accorde « manga » au féminin pour désigner ce qu'il appela La Mangwa (sic) de l'artiste. Le terme revêtait alors plutôt le sens de « miscellanées », c'est-à-dire un recueil de nature disparate[9]. Depuis cette époque, manga a souvent été employé au féminin, et ce jusqu'à la popularisation de l'usage au masculin dans les années 1990 (notamment par les premiers journaux spécialisés et la télévision)[9]. Mais un argument en faveur de la féminisation du terme pourrait être que la locution équivalente en français, bande dessinée, est déjà de genre féminin. Plus récemment, l'auteur Frédéric Boilet parle de manga au féminin, notamment dans le cadre de son mouvement franco-japonais La Nouvelle Manga[10]
...

最新更新