Python解析字符串
我有一个非常恼人的问题,答案可能很简单,但我不能把2和2放在一起 我有一个字符串示例,它看起来像这样:Python解析字符串,python,parsing,beautifulsoup,Python,Parsing,Beautifulsoup,我有一个非常恼人的问题,答案可能很简单,但我不能把2和2放在一起 我有一个字符串示例,它看起来像这样: <a href="javascript:void(0);" onclick="viewsite(38903);" class="followbutton">Visit</a> 每次我加载页面时,数字38903都会不同。我需要一种方法,能够在每次加载页面时解析这些数字。我已经获得了足够多的信息来获取和包含上面的HTML代码片段,但无法仅获取数字 再说一次,这可能是一
<a href="javascript:void(0);" onclick="viewsite(38903);" class="followbutton">Visit</a>
每次我加载页面时,数字38903都会不同。我需要一种方法,能够在每次加载页面时解析这些数字。我已经获得了足够多的信息来获取和包含上面的HTML代码片段,但无法仅获取数字
再说一次,这可能是一件很容易的事,只是想不出来。提前谢谢 如果您使用的是BeautifulSoup,只需点击
onclick
字符串就非常简单了,这将使操作更加简单。但这里有一个非常粗糙的方法:
import re
result = re.sub("\D", "", html_string)[1:]
\D
匹配所有非数字,因此这将删除字符串中非数字的所有内容。然后从javascript:void(0)
中删除“0”
其他选项:使用re.search获取一系列数字,并获取第二组。或者使用re.search来匹配子字符串后面的一系列数字,其中子字符串是import re
>>>抓取html=''''''''
>>>关于findall(r'viewsite\(\d+);',grabbedhtml)[0]
'38903'
这将专门查找viewsite()的全数字参数。与Andrew的答案相比,您可能更喜欢这一点,因为如果HTML字符串中出现其他数字,您将开始得到不正确的结果。“获取并包含HTML代码片段”,使用什么?Python中的任何内容。但目前正在使用BeautifulSoup。将BeautifulSoup添加到标记列表中。(此答案的原始版本将
re.sub
视为它修改了html_字符串本身,当然不会,因为Python字符串是不可变的。它已被编辑以修复此问题。)是的,这会更好——尽管如果OP使用的是问题注释中提到的BeautifulSoup,那么最好只是找到onclick字符串并处理它,而不是解析整个内容。
import re
result = re.sub("\D", "", a['onclick'])
>>> import re
>>> grabbed_html = '''<a href="javascript:void(0);" onclick="viewsite(38903);" class="followbutton">Visit</a>'''
>>> re.findall(r'viewsite\((\d+)\);',grabbedhtml)[0]
'38903'
import re
r = re.compile('viewsite\((\d+)\)')
r.findall(s)