|
20鱼币
import urllib.request
import re
def get_url(url):
req = urllib.request.Request(url)
req.add_header("User-Agent","""Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763)"""
)
page = urllib.request.urlopen(req)
html = page.read().decode("utf-8")
return html
def get_id(html):
id_360 = r'((\d|[a-z]){32})'
id_list = re.findall(id_360,html)
print(id_list)
if __name__ == '__main__':
url = "http://image.so.com/i?q=%E5%8A%A8%E6%BC%AB%E5%A3%81%E7%BA%B8&src=srp&bz_parent=45&bz_child=67&bz_color=&bz_width=1536&bz_height=864&box=box_bz&bz_type=pc#/"
get_id(get_url(url))
我只想要前面那一串东西,怎么搞,为什么会出现后面那单独的一个。
求个答案
???????????????????????????????????
id_360 = r'((\d|[a-z]){32})' 这一句应该改成:id_360 = r'[\da-z]{32}'
小括号() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
比如:re.findall(r'(\d)(\d)',"93ed56ae") ,结果:[('9', '3'), ('5', '6')]
中括号[] 是定义匹配的字符范围。所以这里应该用中括号:[\da-z]
|
最佳答案
查看完整内容
id_360 = r'((\d|[a-z]){32})' 这一句应该改成:id_360 = r'[\da-z]{32}'
小括号() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
比如:re.findall(r'(\d)(\d)',"93ed56ae") ,结果:[('9', '3'), ('5', '6')]
中括号[] 是定义匹配的字符范围。所以这里应该用中括号:[\da-z]
|