A. python 用什麼模塊處理網頁的javascript
lxml 配合 html5lib
可以很好的解析 html DOM
但對於js的解析 據我所知現在沒有什麼很成熟的模塊能做這個
解析js肯定不是正則能辦得到的, 比較現實的方案是
從webkit下手, 但光這一個庫就有10+M
(利用webkit自己解析js等解析完之後讀取html dom, 什麼時候解析完,什麼內容需要解析,什麼內容不應該解析是使用的難點)
如果你碰到的js代碼比較簡單
可以自己看看js代碼然後使用python模擬js代碼得到網址
其中使用webkit是最難的(不是簡單顯示界面,需要自己hook)
模擬js其次
lxml是最普遍的了
(這個解析一般的html必須配合其他html解析庫,自帶的那個html解析不是很健壯碰到稍微差點的頁面就不能正確解析)
另外html DOM 裡面 beautifulsoup 是一個比較老道的使用正則實現解析HTML DOM的庫.
B. python中如何調用js文件中的方法呢
1、打開pycharm開發工具,點擊File菜單,選擇Settings...,進行第三方模塊安裝;輸入selenium,點擊Install Package。
C. 如何向iframe中寫入js代碼讓js在iframe中執行
1、首先,新建一個網頁。
D. 如何在js上運行Python腳本或者,js怎麼調用.py文件
想調用後台按鈕的事件,不用AJAX,可以使用一種變通的方法。 比如你一個前台HTML控制項 ID=ctl吧,在這里控制項的onclick事件中綁定下面的函數.同時假定已存在一個ID=btnTest的伺服器控制項(該控制項有後台Click事件) <input id='ctl' type='button' onclick='callOtherBtnEvent();' /> function callOtherBtnEvent(){ document.getElementById('<%btnTest.ClientID%>').click(); } 後台public void btnTest_Click(object sender,EventArgs e) { Response.Write("<script>alert('調用了後台事件')</script>"); }
E. 如何用python爬取js動態生成內容的頁面
抓取js動態生成的內容的頁面有兩種基本的解決方案
1用dryscrape庫動態抓取頁面
js腳本是通過瀏覽器來執行並返回信息的,所以,抓取js執行後的頁面,一個最直接的方式就是用python模擬瀏覽器的行為。WebKit 是一個開源的瀏覽器引擎,python提供了許多庫可以調用這個引擎,dryscrape便是其中之一,它調用webkit引擎來處理包含js等的網頁!
2 selenium web測試框架
selenium是一個web測試框架,它允許調用本地的瀏覽器引擎發送網頁請求,所以,它同樣可以實現抓取頁面的要求。
F. python selenium 怎麼操作js代碼
調用js方法
execute_script(script, *args)
在當前窗口/框架 同步執行javaScript
腳本:JavaScript的執行。
*參數:適用任何JavaScript腳本。
使用:
driver.execute_script(『document.title』)
使快播登陸用戶名輸入框標紅顯示:
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome")
#給用戶名的輸入框標紅
js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"
#調用js
driver.execute_script(js)
time.sleep(3)
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
time.sleep(3)
driver.quit()
js解釋:
q=document.getElementById(\"user_name\")
元素q的id 為user_name
q.style.border=\"1px solid red\
元素q的樣式,邊框為1個像素紅色