python如何解析html

python如何解析html,python,beautifulsoup,Python,Beautifulsoup,我想用BeautifulSoup解析python中的html div 我的代码: url = "http://german-bash.org/action/random" response = urllib2.urlopen(url) html = response.read() soup = BeautifulSoup(html) for div in soup.findAll('div','zitat'): output = div.find('span', 'quote_zeile

我想用BeautifulSoup解析python中的html div

我的代码:

url = "http://german-bash.org/action/random"
response = urllib2.urlopen(url)
html = response.read()
soup = BeautifulSoup(html)
for div in soup.findAll('div','zitat'):
    output = div.find('span', 'quote_zeile').string
    print(output)
我想获取div“div.zitat”中的所有span,但它不起作用

您只获取第一个这样的
。再次使用
.findAll()
查找所有此类跨度:

html = response.read()
soup = BeautifulSoup(html, from_encoding=response.info().getparam('charset'))
for div in soup.findAll('div','zitat'):
    for span in div.findAll('span', 'quote_zeile'):
        print span.string
这将产生:

>>> for div in soup.findAll('div','zitat'):
...     for span in div.findAll('span', 'quote_zeile'):
...         print span.string
... 
<bigg-el> war grad schuhe kaufen

<bigg-el> konnte mich nicht entscheiden...

<bigg-el> dann hab ich halt beide genommen :D

<Sputnik> links UND rechts??
<Busstard> weisste was scheisse is?

<Parteibruder> Nöa!

<Busstard> wenn man seinen eigenen vadda um halb zehn im puff trifft....>(

<Parteibruder> LOOOOOOL
<Psyman2> Saw? gib mal ne Zusammenfassung

<Alf777> Gewalt, Blut, Folter, psychische Schäden und abgetrennte Körperteile

<Psyman2> Aha, normale Hauptschule also

<Alf777> rofl
<complex> ich verhüte nicht. frauen hüten sich vor mir -.-
<MeX> Da steht im neuen Plus-Prospekt doch tatsächlich:

<MeX> Achtung: Silvesterknaller nur aus 2 Meter Entfernung entzünden!

<MeX> Wie stellen die sich das vor? Mit nem Flammenwerfer?
汤中的div.findAll('div','zitat'): ... 对于div.findAll中的span('span','quote_zeile'): ... 打印span.string ... 战争毕业生舒赫考芬 我不知道该怎么做。。。 我要在基诺门停车 链接和推荐?? 韦斯特是谢斯是谁? Nöa! 我是一个很有经验的人( 露oool 看到了吗?gib mal ne Zusammenfassung 格瓦尔特、布卢特、福尔特、施瓦登和科尔佩特尔 啊哈,我也是 爆笑 我不知道。胡腾夫人是谁- 新奥尔良大学和塔斯科利奇学院: 阿什东:西尔维斯特·克纳勒·努尔·奥斯2米长的车! 你是怎么做的?你是怎么做的?
请注意,我还告诉了
BeautifulSoup
要使用的编码,这些编码取自响应
内容类型
标题;这对于这个页面很重要,因为如果没有它,BeautifulSoup猜测是错误的。

它怎么会不起作用?我如何只显示第一个div.zitat中的第一个跨距?@Evolutio:use
.find()
要查找第一个匹配项,请使用
.findAll()
查找所有元素(列表)。您需要明确说明您希望看到的输出。@Evolutio:您的错误与代码不匹配。该错误表示您试图在文本对象上访问
。findAll
,而不是在标记或
soup
对象上。@Evolutio:对我来说效果很好;您是否为中的
div
span
分配了其他内容e在任何地方编码?@Evolutio:您正在将unicode值传递给某个对象;如果API需要字节字符串,则首先对其进行编码。
.encode('utf8')
例如,将数据编码为UTF-8。