我试图创建一个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