如何使用JAVASCRIPT抓取网站

时间:2017-01-05 06:34:54

标签: javascript python web-crawler

我正在使用python 3.x并使用Beautifulsoap进行爬行

我想学习如何使用JAVASCRIPT抓取网站

例如)

<link   href=<%="'mystyle.css?version="+ DateTime.Now.ToString("yyyyMMddhhmmss") +"'"%>   rel="stylesheet" type="text/css"/>

在此,

通常,我期待

<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>

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

但是,在第一个代码中

a href="/alal/blablabla.pdf"

url在哪里?

我以为我得了硒。所以,如果我使用a ~~~ .click(),我会得到关于我想要的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>

右??

我很困惑。

1 个答案:

答案 0 :(得分: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')