【发布时间】:2013-11-25 02:19:52
【问题描述】:
我有一大段文本,想解析出所有的 URL,返回一个遵循这种模式的 url 列表:https://www.facebook.com/.*$.
这是我想从中解析的文本示例:
<abbr title="Monday xxxx" data-utime="xx" class="timestamp">over a year ago</abbr></div></div></div></div></div></li><li class="fbProfileBrowserListItem"><div class="clearfix _5qo4"><a class="_8o _8t lfloat" href="https://www.facebook.com/xxxxx?fref=pb&hc_location=profile_browser" tabindex="-1" aria-hidden="true" data-hovercard="/ajax/hovercard/user.php?id=xxxx&extragetparams=%7B%22hc_location%22%3A%22profile_browser%22%7D"><img class="_s0 _rw img" src="https://fbcdn-profile-xxxxxxxx.net/hprofile-ak-ash2/xxxxxx.jpg" alt=""></a><div class="clearfix _42ef"><div class="_6a rfloat"><div class="_6a _6b" style="height:50px"></div><div class="_6a _6b"><div class="_5t4x"><div class="FriendButton" id="u_2h_1w"><button class="_42ft _4jy0 FriendRequestAdd addButton _4jy3 _517h" type="button">
我想得到“https://www.facebook.com/xxxxx?fref=pb&hc_location=profile_browser”
我尝试了什么
from bs4 import BeautifulSoup
html = open('full_page_firefox.html')
def getLinks(html):
soup = BeautifulSoup(html)
anchors = soup.findAll('a')
links = []
for a in anchors:
links.append(a['href'])
return links
print getLinks(html)
拆分似乎也不起作用,因为它不保留模式。因此,如果我使用诸如“https://www.facebook.com/*.$”之类的东西来获取带有 re.split() 或其他东西的 url,它就不起作用了。
【问题讨论】:
-
希望这篇博文可能对某些人有用。 samranga.blogspot.com/2015/08/web-scraping-beginner-python.html