使用BeautifulSoup解析HTML而没有类(只是段落)

时间:2017-07-12 17:18:25

标签: python html beautifulsoup lxml

我正在尝试使用数字解析中间位的“https://projecteuler.net/problem=8”。由于它没有单独的类来选择它,我使用了

r = requests.get('https://projecteuler.net/problem=8')
data = r.text
soup = BeautifulSoup(data, "lxml")
[para1, para2, para3] = (soup.find_all('p'))

要分隔段落,但这会留下很多额外的垃圾(<p> and <br>)。是否有命令要清除所有这些?有没有比我目前使用的更好的命令进行拆分?从来没有真正在Python中进行过多的网页抓取......

1 个答案:

答案 0 :(得分:2)

soup.find_all返回一组包含html标签的html节点;如果要从节点中提取文本,可以在每个节点上使用.text;在para2上应用此项,即可:

para2.text.split()

#['73167176531330624919225119674426574742355349194934',
# '96983520312774506326239578318016984801869478851843',
# '85861560789112949495459501737958331952853208805511',
# '12540698747158523863050715693290963295227443043557',
# ...