我試圖創建一個python腳本,它可以自動獲取網頁上表格的內容。 我設法使它在純html頁面上工作,但有一個網站,讓我頭痛... 該html似乎是由JavaScript生成的。 我嘗試了dryscrape,selenium和qt4庫從幾個帖子中發現的例子,但仍然沒有成功......我只是得到所有的時間在JavaScript之前的HTML做他的工作....所以沒有表.... 我可以請參閱瀏覽器上的表格,以及何時使用Chrome「檢查」html。當我在Chrome瀏覽器中查看頁面源代碼時,表格也不存在......可能會給出一些提示。使用python無法獲取javascript生成的html
網站如下:
https://www.ictax.admin.ch/extern/en.html#/security/CH0008899764/20161231
下面是一些代碼,我嘗試了(如果您檢查答案不表標籤):
使用urlib2:
import urllib2
url="https://www.ictax.admin.ch/extern/en.html#/security/CH0008899764/20161231"
html = urllib2.urlopen(url)
print html
使用dryscrape:
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