【问题标题】:How to do Regex for a href?如何为href做正则表达式?
【发布时间】:2023-03-18 17:35:02
【问题描述】:
<div class="user-info" style="position:absolute;top:5px;left:5px;z-index:1">

<a href="/kjrphotography" target="_blank">

<img class="photo_user" src="http://images.ak.instagram.com/profiles/profile_507998691_75sq_1376497436.jpg" width="40" height="40" title="kjrphotography" border="0">

</a>

<span class="usertag" style="display: none;">@kjrphotography</span>

</div>

所以我有点分开了,基本上我试图找到“用户信息”在哪里,然后我需要获取 a href 是什么。在这种情况下 /kjrphotography 或带有 usertag 类的 span 元素。

如果有人可以帮助我,请不胜感激。

到目前为止我有这个,但我知道这不是正确的

userdata = re.findall(ur"<div class=\"user-info\"><\/div>",curlData)

【问题讨论】:

  • 我宁愿使用 HTML 解析库而不是正则表达式。美丽的汤例如:crummy.com/software/BeautifulSoup/bs4/doc
  • BeautifulSoup 4 现在只是一个 lxml 包装器,所以你不妨直接使用 lxml
  • 所以即使使用正则表达式来获取用户标签跨度字段?没人能给我吗?我正在使用 curl,所以我更愿意保持这种方式。
  • 什么是完整的 HTML?
  • 您可以使用 Javascript 或 jQuery 来抓取“用户信息”中的 href。如果你想将 href 传递给 python 代码,那么你可以使用 Ajax..

标签: python html regex post get


【解决方案1】:

绝对是最好和最简单的使用 HTML 代替,html 是您的 HTML 页面 - 这是一个使用 BeautifulSoup 的示例:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print soup.select('.user-info a')[0]['href']
# /kjrphotography

您会发现它比尝试将 HTML 视为字符串更容易且更健壮...

或者:

for info in soup.find_all('div', class_='user-info'):
    print 'href:', info.find('a', href=True)['href']
    print 'user:', info.find('span', class_='usertag').text

#href: /kjrphotography
#user: @kjrphotography

【讨论】:

  • 如何为 windows 7 64 位安装这个?
【解决方案2】:
from lxml import html
xml = html.fragments_fromstring("""<div class="user-info" style="position:absolute;top:5px;left:5px;z-index:1">

<a href="/kjrphotography" target="_blank">

<img class="photo_user" src="http://images.ak.instagram.com/profiles/profile_507998691_75sq_1376497436.jpg" width="40" height="40" title="kjrphotography" border="0">

</a>

<span class="usertag" style="display: none;">@kjrphotography</span>

</div>""")[0]

xml.find('span').text

返回'@kjphotography'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多