python访问网页修改js(python修改网页数据)
如何用python爬虫直接获取被js修饰过的网页Elements?
对于这种动态加载的网站,建议使用第三方库selenium爬取。
它可以完全模拟浏览器,等待网站全部加载完成后再进行数据的自动获取。
对于主流的ChromeDriver、InternetExplorerDriver、FirefoxDriver、OperaDriver都支持,网站上的元素也支持多种选择器,如class、id、xpath等。
但是用习惯以后,对于这种非纯静态页面,离开selenium感觉就完全不会爬虫了。
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的库.
python中如何调用js文件中的方法呢
1、打开pycharm开发工具,点击File菜单,选择Settings...,进行第三方模块安装;输入selenium,点击Install Package。
2、接着在python项目的指定文件夹下,鼠标右键新建python文件,输入文件名并点击Python file。
3、打开新建的文件,依次导入selenium、webdriver和time。
4、调用webdriver模块中的Chrome(),使用get()获取对应网址的内容。
5、调用find_element_by_id()获取对应页面元素,然后调用按钮点击事件。
6、修改get()方法中的请求路径,然后保存代码并运行文件,查看运行结果。
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("")
#给用户名的输入框标红
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个像素红色