用靓汤刮去方括号

2024-04-20 01:34:50 发布

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

我正在抓取谷歌搜索结果页面是存储在我自己的服务器。我使用下面的代码来抓取页面。在

from string import punctuation, whitespace
import urllib2
import datetime
import re
from bs4 import BeautifulSoup as Soup
import csv
today = datetime.date.today()
html = urllib2.urlopen("http://192.168.1.200/coimbatore/3BHK_flats_inCoimbatore.html_%94201308110608%94.html").read()

soup = Soup(html)
p = re.compile(r'<.*?>')
aslink = soup.findAll('span',attrs={'class':'ac'})
for li in soup.findAll('li', attrs={'class':'g'}):
    sLink = li.find('a')
    sSpan = li.find('span', attrs={'class':'st'})
    print sLink['href'][7:] , "," + p.sub('', str(sSpan)).replace('.','')
print p.sub('', str(aslink)).replace('.','\n')

这里的问题是我在输出中得到了这个方括号

^{pr2}$

此输出是从该行生成的

print p.sub('', str(aslink)).replace('.','\n')

我想知道为什么这个支架会来,我也想把它取下来。在

更新

这是我的页面http://jigar.zapto.org/coimbatore/3BHK_flats_inCoimbatore.html_%94201308110608%94.html


Tags: fromimportredatetimehtml页面liurllib2
1条回答
网友
1楼 · 发布于 2024-04-20 01:34:50

findAll()返回一个列表。如果只需要一个元素,请使用.find(),这将返回第一个结果:

aslink = soup.find('span',attrs={'class':'ac'})

方括号是对list对象调用str()的结果。或者,使用索引来获取一个元素:

^{pr2}$

或者在aslink元素上循环。在

但是,看起来好像您想从span元素中提取所有文本。不要使用正则表达式,只需向beauthulsoup查询所有文本内容:

for l in aslink:
    print ' '.join(l.stripped_strings)

相关问题 更多 >