0

遊んでいて、フォーラムスレッドに新しい投稿が表示されたときに自分にメールを送信したいのですが、urllib.urlopen で URL を開くと、Web ページが返されますが、ページ本文がありません。なぜそうなのか誰か教えてもらえますか?そして、どうやって体を手に入れることができますか?

def loadUrl(adress): 
  adress = urllib.unquote(adress)
  print("Loading " + adress)
  socket =urllib.urlopen(adress)
  html = socket.read()
  socket.close()
  soup = BeautifulSoup(html)
  return soup


soup = loadUrl("http://de.pokerstrategy.com/forum/thread.php?threadid=498111")
4

3 に答える 3

3

さらに、Pyqueryを使用することをお勧めします。

from pyquery import PyQuery
d = PyQuery("http://de.pokerstrategy.com/forum/thread.php?threadid=498111")

print d("body").html()
于 2012-12-26T23:46:51.243 に答える
1

EDIT申し訳ありませんが、取得しようとしていた URL を投稿したことに気づきませんでした。私はあなたと同じ応答を得て、理由がわかりません。以下で提案したように、JavaScriptには何も表示されません。

私はあなたのコードをテストしましたが、うまくいくようです。おそらく、取得しようとしているページは、javascript などを介して body 要素を生成します。この場合、セレンのようなものを使用してブラウザをエミュレートできると思います。

于 2012-12-26T23:40:44.473 に答える
0

たとえば、BeautifulSoupwithを使用して成功しました:urllib2

from urllib2 import urlopen
...
html = urlopen(...)
soup = BeautifulSoup(html)
于 2012-12-26T23:40:55.180 に答える