使用 BeautifulSoup 时抑制/忽略特定类型错误的任何方法
我抓取的每个页面上都有许多元素,但许多页面没有我需要的所有项目,因此我最终不得不将每个项目都包裹在其中,
try:
itemNeeded = soup.find(text="yada yada yada").next
except AttributeError:
pass
这使我的代码膨胀了 400%。
有没有什么办法可以把它抽象出来,或者至少减少碍眼的地方?
编辑:我不仅搜索字符串,而且还做这样的事情:
navLinks = carSoup.find("span", "nav").findAll("a")
carDict['manufacturer'] = navLinks[1].next
carDict['model'] = navLinks[2].next
There are many elements that I need on each page I scrape, but many pages don't have all the items I need, so I end up having to wrap each and every item grab in
try:
itemNeeded = soup.find(text="yada yada yada").next
except AttributeError:
pass
This balloons my code by 400%.
Is there any way to abstract this away, or at least reduce the eyesore?
Edit: I'm not only searching for strings, but doing things like this as well:
navLinks = carSoup.find("span", "nav").findAll("a")
carDict['manufacturer'] = navLinks[1].next
carDict['model'] = navLinks[2].next
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
构建一个列表并迭代该列表...使用一些模板..您只需要弄清楚如何以更小、更简单的方式迭代整个页面。
Build a list and iterate over the list... Use some templating.. You just need to figure out how to iterate over the whole page, in a smaller, simpler fashion.
您是否考虑过编写一个更全局的 try except 块,例如:
Have you considered writing a more global try except block, something like: