2017-04-16 15 views
0

私は多くの同様の質問があることを知っていますが、私はそれらのすべてを通り抜けていて、彼らは私を助けませんでした。私はウェブサイトから情報を得ようとしており、他のウェブサイトでも同じ方法を使って成功しています。ただし、ここでは動作しません。誰かが私にいくつかのヒントをくれたら大変感謝しています!Python Xpathリクエストが空のリストを不規則に返します

明日の最高気温をthis websiteから取得したいと考えています。

import re, requests, time 
from lxml import html 

page = requests.get('http://www.weeronline.nl/Europa/Nederland/Amsterdam/4058223') 
tree = html.fromstring(page.content) 
a = tree.xpath('//*[@id="app"]/div/div[2]/div[5]/div[2]/div[2]/div[6]/div/div/div/div/div/div/ul/div[2]/div/li[1]/div/span/text()') 
print(a) 

ただし、空のリストを返します。私がチェックしたいくつかの他のウェブサイト上の同じ方法がうまくいきました。私はこのウェブサイトとこのドメインの他の部分にこの方法を適用しようとしましたが、すべて役に立たないものです。

ありがとうございました! 最高のお礼

+0

これは、この場合のxpathが単に有効でないためです。 'a = tree.xpath( '// * [@ id =" app "]')' – JacobIRR

+0

私はそれがウェブサイトの別の部分をチェックすると(主な問題)だとは思わない私は同じ問題を抱えています(xpathは/ html/body/divなどで始まります)。しかし、返信いただきありがとうございます! @ bill-bellが提案したもの、クッキーの問題かもしれません。 – Cobra

答えて

1

そのページを開こうとすると、Cookieを許可するかどうか尋ねられます。 (それはそういうものなので、オランダ人はいません)セレンのようなものを使って、本当に欲しいページにアクセスできるようにボタンをクリックする必要があります。次に、Web Scrape page with multiple sectionsで説明した手法を使用して、そのページのHTMLを取得し、最後に、必要なコンテンツを取得するために必要なxpathを適用できます。

+0

確かにクッキーを許可する要求、私はそれをクリックして忘れてしまった。私はセレンで何かを把握できれば試してみるよ、ありがとう! – Cobra

+0

はい私はページで@コブラも見ましたが、そのページに行ってもidが "app"のdivはありませんでした – JacobIRR

+0

すばやく最後の質問です。私は(あなたが気づくかもしれないが)Pythonであまり経験がない。スクリプトにセレン(または同様の)を実装することは、比較的新しいプログラマーにとって非常に難しいプロジェクトでしょうか?私はちょうどウェブサイトを掻き集めることを理解するためにこれをやっている、私は単にクッキーの壁などを含むものをスキップすることができます。私は数時間働くためにセレンを取得しようとしてきましたが、理解していない。 もう一度お世話になりました。 – Cobra

関連する問題