Python:regex中的名称错误

2024-10-02 04:37:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为HTML编写一些RegEx代码。我使用美丽的雾部分,并需要一些正则表达式的一些部分。在

代码如下:

`import urllib.request
from bs4 import BeautifulSoup
import re
lll=''
f=open('n.txt','w')
u='http://fortune.com/2015/12/31/wall-street-boutiques-did-well/'
r=urllib.request.urlopen(u)
s=BeautifulSoup(r.read(),'html.parser')
x=s.findAll('p')
print(r.read())
for p in x:
        l=str(p)
        ll=re.findall('<p>(.*)<a .*>',l)
        for t in ll:
                l1=t
        ln=re.findall('<a .*>(.*)</a>',l)
        for t in ln:
                l2=t
        lnn=re.findall('</a>(.*)</p>',l)
        for t in ll:
                l3=t
        lll= str(lll)+str(ll)+str(l2)+str(l3)`

但我得到了这个,为什么?在

^{pr2}$

Tags: 代码inimportreforreadrequesturllib
2条回答

既然您使用的是beauthoulsoup,那么为什么要使用regex。我只向您展示了如何实现您想要的输出(即lll),前提是我没有弄错。在

我在Python2.7中,所以我修改了一些代码——这段代码提取了a标记内的内容和p标记内的内容并相应地打印出来。在

from urllib2 import urlopen
from bs4 import BeautifulSoup

u='http://fortune.com/2015/12/31/wall-street-boutiques-did-well/'
r=urlopen(u)
s=BeautifulSoup(r.read(),'html.parser')
x=s.findAll('p')
for i in x:
    if len(i.select('a'))>0:
        print "Inside a {0}".format(''.join([j.text.encode('utf-8') for j in i.select('a')]))
    else:
        print "Inside p {0}".format(i.text.encode('utf-8'))

输出-

^{pr2}$

re.findall('<p>(.*)<a .*>',l)没有找到任何匹配项,因此ll是{},这意味着{}循环了零次,这意味着分配{}从未发生过。在

仔细检查正则表达式并进行更正,使其与应用它的内容相匹配。在

相关问题 更多 >

    热门问题