【发布时间】:2016-02-09 12:59:39
【问题描述】:
这是我的代码,但它会打印整个段落。如何只打印第一句,直到第一个点?
from bs4 import BeautifulSoup
import urllib.request,time
article = 'https://www.theguardian.com/science/2012/\
oct/03/philosophy-artificial-intelligence'
req = urllib.request.Request(article, headers={'User-agent': 'Mozilla/5.0'})
html = urllib.request.urlopen(req).read()
soup = BeautifulSoup(html,'lxml')
def print_intro():
if len(soup.find_all('p')[0].get_text()) > 100:
print(soup.find_all('p')[0].get_text())
此代码打印:
说明人脑具有的能力在某些情况下是 方面,远远优于那些在所有其他已知对象 宇宙将是无可争议的。大脑是唯一的对象 能够理解宇宙甚至存在,或者为什么存在 是无限多的素数,或者苹果掉落是因为 时空的曲率,或者服从其与生俱来的本能可以 在道德上是错误的,或者它本身存在。也不是独一无二的 能力仅限于这种大脑问题。冷酷的物理事实 是它是唯一可以推动自己进入的物体 空间和返回没有伤害,或预测和防止流星袭击 本身,或将物体冷却到绝对温度以上十亿分之一度 零,或跨银河系探测到其他同类。
但我只想打印:
说明人脑具有的能力在某些情况下是 方面,远远优于那些在所有其他已知对象 宇宙是无可争议的。
感谢您的帮助
【问题讨论】:
-
获得第一个段落(即第一个
元素)后,您可以将字符串拆分为字符串列表。
mystring.split(sep='.')。之后,您可以获得第一个列表元素。你可以试试这个吗? -
我得到了该 URL 的不同输出,
'\n\nWednesday 3 October 2012 07.00\xa0BST\n\n\nLast modified on Sunday 10 January 2016 09.11\xa0GMT\n\n'。保存该文本的是 second<p>标记。
标签: python text beautifulsoup bs4