我已经编写了以下代码,以从网站的源代码中获取文本字符串。如前所述,第一个findall可以正常工作,而第二个则返回一个空列表。我试图从c代码下面的html中获取名称(Kendall Easley)。
for j in links:
req = urllib2.Request(j, None, headers)
response = urllib2.urlopen(req)
page = response.read() #open source code
org = re.findall(r'(?<=<meta content=").*?(?="
property="og:title")', page)
print(org) #works
name = re.findall(r'(?<=ic_only=64" title=").*(?="><img alt=)', page)
print(name) #prints empty list
<a data-popup="{"type":"profile"}" href="/149855/profile/10525304/display_profile?pic_only=64" title="Kendall Easley"><img alt="Profile Photo" class="user-profile-pic profile_pic_64" height="64" src="https://orgsync.com/assets/icons/accounts/profile_pic_blank_64.gif" width="64" /></a>
答案 0 :(得分:0)
我不确定我是否完全理解您的问题,但这会从该html字符串中提取名称。希望对您有帮助
>>> import re
>>>
>>> html_string = """<a data-popup="{"type":"profile"}"href="/149855/profile/10525304/display_profile?pic_only=64" title="Kendall Easley"><img alt="Profile Photo" class="user-profile-pic profile_pic_64" height="64" src="https://orgsync.com/assets/icons/accounts/profile_pic_blank_64.gif" width="64" /></a>"""
>>>
>>> name = re.findall(r".*title=\"(\w+\s+\w+)", html_string)
>>>
>>> name
['Kendall Easley']
编辑*请注意,我在html字符串周围放置了三引号
答案 1 :(得分:-1)
在第一个re.findall()
之后,您已经阅读了文本,并且标记位于文本的结尾。
您必须对文本执行seek(0)
或类似操作(我正在读取txt
文件,这样对我有用),然后再次执行re.findall
。否则,它将尝试从文本末尾搜索,当然那里什么也没有。
(ps我是python的新手(请阅读4周))