【发布时间】:2016-12-12 05:55:11
【问题描述】:
我使用 Selenium 和 PhantomJS 希望从使用 javascript 构建 DOM 的网站获取数据。
下面的简单代码有效,但并不总是有效。我的意思是大多数时候它会返回一个没有执行 javascript 的空网站。它很少能得到我想要的正确信息。
from selenium import webdriver
from bs4 import BeautifulSoup
url = 'http://mall.pchome.com.tw/prod/QAAO6V-A9006XI59'
driver = webdriver.PhantomJS
driver.get(url)
print(driver.page_source, file=open('output.html','w'))
soup = BeautifulSoup(driver.page_source,"html5lib")
print(soup.select('#MetaDescription'))
返回空字符串的概率很高:
[<meta content="" id="MetaDescription" name="description"/>]
网站服务器是否不允许网络爬虫?我可以做些什么来修复我的代码?
更重要的是,我需要的所有信息都可以在 <head> 的 <meta>tag 中找到。
(如上图所示,数据的 id 为 MetaDescription)
或者有没有更简单的方法来获取<head>标签中的数据?
【问题讨论】:
-
soup.select('head')?不管怎样,你有没有试着等一下?
标签: javascript python python-3.x selenium phantomjs