我需要用bs4来分析一个html,需要写很多 提取语句,大概几十条,格式如下
twitter_url = summary_soup.find('a','twitter_url').get('href')
facebook_url = summary_soup.find('a','facebook_url').get('href')
linkedin_url = summary_soup.find('a','linkedin_url').get('href')
name = summary_soup.find('p', class_='name').find('a').string
但是每个语句都有可能出异常,如果每个语句都加上try except 就太繁琐了,有没有什么好的方法处理每条语句,出异常赋值为None,不中断程序
J'ai posé une petite question en commentaire de la question. Si vous pouvez y répondre, il sera plus facile pour chacun de comprendre vos besoins.
Si vous ne voulez pas trop réfléchir et souhaitez simplement éviter les erreurs qui peuvent survenir lorsque
get
, il existe une manière plus furtive s'il n'y a pas trop de situations étranges à gérer, vous pouvez peut-être le faire. essayez :Si bs's
find
ne trouve rien, ce serareturn None
A ce moment, nous utilisonsor
pour réaliser une astuce afin queget
n'échoue jamais. En utilisant les fonctionnalités similaires duget
du dictionnaire et de la balise bsget
, vous pouvez gérer les exceptions et attribuer des valeurs aux variables commeNone
.Si vous souhaitez écrire avec plus de fermeté, il vous sera très utile de vous référer aux suggestions de @prolifes.
Quelqu'un ci-dessous a demandé comment voler un poulet si c'était
find
, puis j'ai jeté un coup d'œil comme ça, vous savez, l'astuce pour voler un poulet est假資料
:Résultat :
Voler le poulet avec succès !
Questions auxquelles j'ai répondu : Python-QA
Je pense que ce n'est pas un problème d'un grand nombre d'exceptions, mais un problème d'écriture de code. Je vais faire une supposition audacieuse, comme cette phrase :
.twitter_url = summary_soup.find('a','twitter_url').get('href')
Je pense que la raison possible de l'erreur est :
summary_soup.find('a','twitter_url')
Cette phrase n'a pas trouvé l'élément, puis est revenueNone
, puis vous avez utilisé ceNone
pour appelerget('href')
, alors ce doit être un erreur.Si c'est la raison, ce sera plus facile à gérer. Écrivez-le en deux paragraphes :
L'appel en chaîne de bs4 est très bon, alors j'ai emballé la soupe
Référence @prolifes
Personnalisez une méthode dans laquelle des erreurs peuvent être signalées et essayez à l'intérieur de la méthode
Chaque exception peut se produire, ce qui pose problème lorsque vous analysez l'écriture HTML. Lors de l'analyse du code HTML, vous devez essayer d'être aussi complet que possible, puis un essai sauf contient toutes les instructions d'analyse, puis capture les erreurs. et écrit le journal. Plus de pages sont capturées, Ce n'est que s'il n'y a pas d'erreurs que cela peut signifier que la déclaration d'analyse est bien écrite