简要说明:我有一个脚本,它循环遍历页面的元素,然后返回数据。但我希望它返回不在元素中的数据,而是按顺序。在
import argparse, os, socket, urllib2, re
from bs4 import BeautifulSoup
pge = urllib2.urlopen("").read()
src = BeautifulSoup(pge)
body = src.findAll('body')
el = body[0].findChildren()
for s in el:
cname = s.get('class')
if cname[0] == "work":
print s.text
HTML格式:
^{pr2}$它打印1235,漏掉了4,但我希望它打印12345
我用换行符格式化了您的html,以帮助说明为什么4没有打印到您期望的位置。在
您正在迭代的子类,并从属于类“work”的任何子级打印文本。数字4不符合这个标准,因为它是文本,而不是一个有“工作”类的孩子。在
我不认为beauthulsoup能像您期望的那样解码这个特定的html。在
一种解决方案是自己解析html,因为这不是一种典型的情况。一种方法可能是使用regex来查找类似以下内容的实例:
建立一个{记住:不是空的}的字典。当你循环时身体。孩子们根据此词典()验证文本。如果是键,则打印该值,然后打印s.text()。在
根据实际的html是什么,这可能会工作。。。在
你可以:
当然,只有当以下两条规则始终有效时,此方法才有效:
简单地说:
相关问题 更多 >
编程相关推荐