从页面中提取特定的URL并将它们转换为绝对URL

2024-06-16 11:38:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要你们的帮助:我正在抓取所有以details.php?" 从this page忽略所有其他URL。在

然后,我需要将我刚刚抓取的每个url转换成一个绝对url,这样我就可以一个一个地抓取它们。绝对URL以:http://evenementen.uitslagen.nl/2013/marathonrotterdam/details.php?。。。在

我试着像这样使用re.findall

html = scraperwiki.scrape(url)
if html is not None:
    endofurl = re.findall("details.php?(.*?)>", html) 

这给了我一张单子,但是我被卡住了。有人能帮我吗?在


Tags: rehttpurlhtmlnlpagedetailsthis
3条回答

您可以使用^{}创建完整的URL:

>>> import urlparse
>>> base_url = 'http://evenementen.uitslagen.nl/2013/marathonrotterdam/'
>>> urlparse.urljoin(base_url, 'details.php?whatever')
'http://evenementen.uitslagen.nl/2013/marathonrotterdam/details.php?whatever'

您可以使用列表理解对所有URL执行此操作:

^{pr2}$

啊!我最喜欢的…列表理解!在

base_url = 'http://evenementen.uitslagen.nl/2013/marathonrotterdam/{0}'
urls = [base.format(x) for x in list_of_things_you_scraped]

我不是regex天才,所以您可能需要摆弄base_url直到您完全正确地处理它。在

如果您需要一个接一个地使用最终的url,那么应该使用generator而不是迭代器。在

abs_url = "url data"
urls = (abs_url+url for url in endofurl)

如果您担心对可以使用的url进行编码urllib.urlencode(url)

相关问题 更多 >