2017-01-05 67 views
2

我使用python 3.x和行使使用Beautifulsoap如何使用JavaScript

爬行我想学习如何使用JavaScript

例),爬行网站的爬站

<a id="ContentPlaceHolder1_btnDown" 
href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$btnDown','')"> 
<img src="/images/common/icon/icrobat.gif" alt="emememem"></a> 

<a href="javascript:fn_FileDownLoad('NewsLetter/Attach/2016/12/KIPF_161111.pdf', 
'_KIPF_161111.pdf');">KIPF_161111.pdf</a> 

在此,

通常情况下,我预计

a href="/alal/blablabla.pdf" 

所以,我使用的URL,然后我得到了PDF文件。

但是,在第一个代码

"href = javascript:__doPostBack("ct100$ContentPlaceHolder1$btnDown','')" 

href="javascript:fn_FileDownLoad('NewsLetter/Attach/2016/12/KIPF_161111.pdf', 
'_KIPF_161111.pdf');">KIPF_161111.pdf</a> 

在哪里?网址

我以为我得到了硒。所以,如果我使用一个~~~。点击(),我会得到关于PDF文件的URL我想

例如

from selenium import webdriver 
driver = webdriver.PhantomJS("C:\phantomjs.exe") 
driver.get("http://blablablablablabla.html") 
submitButton.click() 

吧??

我很困惑。

+0

有一个名为'get_attribute()'的硒,你可以用它来获取方法动态页面的html代码。 – Acepcs

回答

0

我想这是你所需要的方法:get_attribute()

的用法是这样的:

from selenium import webdriver 
driver = webdriver.PhantomJS("your phantomjs path") 
driver.get("your target url") 

#firstly locate the block you need by specifying the css attribute, 
#then get its inner HTML code 
html = driver.find_element_by_css_selector('...').get_attribute('innerHTML') 

#or you can locate the block by the id attribute 
html = driver.find_element_by_id('...').get_attribute('innerHTML')