网站有几个href标签,我通过文本解析它。 例如,
<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=100&s=111', 'N')">test1</a>
<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=200&s=111', 'N')">test2</a>
<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=300&s=111', 'N')">test3</a>"
我用过
bs = getBeautifulSoupRequests(board_url)
result = bs.findAll('a', href=True, text='test1')
和结果
"<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=100&s=111', 'N')">test1</a>
但我希望得到如下结果
/board/list.do?boardID=1111&m=100&s=111
我该怎么办?
答案 0 :(得分:1)
你非常接近。您只需获取onclick
属性的值并从中提取链接。你可以使用正则表达式模式来匹配链接,或者使用快速而脏的split()
,如下所示:
from bs4 import BeautifulSoup
html = '''<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=100&s=111', 'N')">test1</a>
<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=200&s=111', 'N')">test2</a>
<a href="#goUrl" onClick="javascript:goUrl('/board/list.do?boardID=1111&m=300&s=111', 'N')">test3</a>"'''
soup = BeautifulSoup(html)
for t in soup.find_all('a', href=True, onclick=True, text='test1'):
onclick = t['onclick'].split("'")[1]
print(onclick)
<强>输出强>
/board/list.do?boardID=1111&m=100&s=111