0

Pythonists の助けが必要です: 「details.php?」で始まるすべての URL をスクレイピングしています。このページから、他のすべての URL を無視します。

次に、スクレイピングしたすべての URL を絶対 URL に変換する必要があるため、1 つずつスクレイピングできます。絶対 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) 

これでリストが表示されますが、行き詰まります。誰でも私を助けることができますか?

4

4 に答える 4

3

urlparse.urljoin()完全な 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 に対してこれを行うことができます。

full_urls = [urlparse.urljoin(base_url, url) for url in endofurl]
于 2013-05-03T19:38:54.343 に答える
0

最終的な URL を 1 つずつ取得する必要があり、それで完了している場合は、反復子の代わりにジェネレーターを使用する必要があります。

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

URL のエンコードが心配な場合は、urllib.urlencode(url) を使用できます。

于 2013-05-03T19:34:58.310 に答える