私は、Webページ上のテーブルの内容を自動的に取得するPythonスクリプトを作成しようとしています。 私は純粋なhtmlページで動作するように管理しますが、私に頭痛を与える一つのウェブサイトがあります... htmlはjavascriptによって生成されるようです。 私はdryscrape、selenium、qt4ライブラリをいくつかの記事にあるサンプルから試してみましたが、まだ成功していません...私はちょうどhtmlの前にjavascriptが仕事をしていたので....テーブルなしで.... できますブラウザの表を参照してください。また、Chromeを使用してhtmlを「検査」するときも参照してください。私が "View Page Source"をChromeで実行すると、テーブルもそこにはありません。これがいくつかのヒントを与えるかもしれません。Pythonを使ってjavascriptでHTMLを生成できません
import urllib2
url="https://www.ictax.admin.ch/extern/en.html#/security/CH0008899764/20161231"
html = urllib2.urlopen(url)
print html
:urlib2を使用して
:ここ
https://www.ictax.admin.ch/extern/en.html#/security/CH0008899764/20161231
は、私は(あなたがチェックすると答えには、テーブルタグ)を試してみたんいくつかのコードです:ウェブサイトは以下のとおりです。
ドライスクラブの使用:
import dryscrape
session = dryscrape.Session()
session.visit(url)
response = session.body()
print response
使用セレン:
from selenium import webdriver
driver = webdriver.Chrome("/usr/lib/chromium/chromedriver")
driver.get(url)
print driver.page_source #page_source fetches page after rendering is complete
driver.quit()
PyQt4
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from lxml import html
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
#This does the magic.Loads everything
r = Render(url)
#result is a QString.
result = r.frame.toHtml()
#QString should be converted to string before processed by lxml
formatted_result = str(result.toAscii())
print formatted_result
を使用して誰かが
乾杯にこの:-)に私に
試したコードを投稿しても問題が解決しませんでしたか? –
これを確認してください:http://stackoverflow.com/questions/43423656/trip-advisor-scraping-morelink/43424006#43424006 PhantomJSドライバを使用して、JSがページコンテンツを読み込むのを待つ必要があります。 – elena
@DeanFenster私は動作しないコードを掲示しました(テーブルなしでHTMLを返します) – Fleppi