2017-09-12 12 views
-1

ウェブページからすべてのリンクを抽出しようとしましたが、いくつかのコードが試されました。たとえば、私はウェブページ内のすべてのリンクを取得する

from urllib.request import urlopen 
import lxml.html 
connection = urlopen('http://sentinel-s2-l1c.s3-website.eu-central1.amazonaws.com/') 

dom = lxml.html.fromstring(connection.read()) 

for link in dom.xpath('//a/@href'): # select the url in href for all atags(links) 
    print(link) 

を試してみましたが、しかし、それは他のウェブページのために動作しますが、それは私が抽出したいWebページのために動作しません。私が試みているウェブページは ウェブページ= 'http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/'

私が知りたいと思う:このウェブサイトは特別なウェブサイトですか?今まで私はAmazon Web Serviceのクラウドストレージを知っています。

このサイトではどうすればいいですか? 私はPythonで新しく、それについての知識はほとんどありません。私の質問の間違いを私に許してください。

答えて

0

これは実際にはPythonの質問ではなく、HTMLの質問です。そのウェブサイトのリンクは相対リンクです。たとえば、「#products /」というリンクがあります。あなたがクリックすると、ブラウザはhttp://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#products/に移動します。あなたのブラウザは、それがウェブサイトであるので、最初に "http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/"の部分を入れることを知っています。しかし、リンクを抽出すると、#products /の部分だけが表示されます。ブラウザのURLバーに投稿すると、正しいページに移動しません。相対リンクがどのウェブサイトであるかを知る。 parent_url変数を追跡し、 "{} relative_url" .format(parent_url)への相対リンクを変更する必要があります。また、parent_urlの最後にスラッシュがあるかどうかを確認し、存在しない場合はスラッシュを追加する必要があります。

関連する問題