Python 中怎么执行 js?

2018-06-11 13:09:49 +08:00
 wsds

场景:爬虫 遇到的问题:获取页面隐藏的 token 节点,难道通过接口爬的东西,还要去自动化打开网页,取到 token,再塞进接口里边??

2 个问题: 1、python 如何执行 js 2、这种场景的问题,是怎么解决的?难道真要通过 selenium 取打开网页,去找到 token,再回过去把取的值,放到接口里边用?

7065 次点击
所在节点    Python
34 条回复
hahastudio
2018-06-11 15:20:03 +08:00
@wsds 如果你是这么认为的,我觉得你需要看更多的东西了。。。
kevanbin
2018-06-11 15:37:24 +08:00
```
from requests_html import HTMLSession
def getToken():
session = HTMLSession()
url = 'http://www.cszjw.net/preselllicence'
token = session.get(url).html.find('input[name="_token"]')[0].attrs['value']
return token
```
wsds
2018-06-11 18:17:15 +08:00
@kevanbin 为什么这个页面用这个方法 不行? http://szjw.changsha.gov.cn/ywcx/
mitnick
2018-06-11 18:31:58 +08:00
Leigg
2018-06-11 18:33:20 +08:00
pyv8
param
2018-06-11 18:41:41 +08:00
@wplct nodejs 你写个脚本调用不好吗
Zzdex
2018-06-11 18:42:04 +08:00
可以用 execjs
Alpha
2018-06-11 18:51:45 +08:00
phatomjs 就可以解决问题
congeec
2018-06-11 19:07:40 +08:00
PyV8 老了,用 py_mini_racer
flowfire
2018-06-11 19:36:18 +08:00
headless chrome 了解一下
kevanbin
2018-06-12 09:54:06 +08:00
@wsds iframe 中的代码,无法在网页源代码中得到
wsds
2018-06-12 10:46:39 +08:00
@kevanbin 了解了,感谢
beforeuwait
2018-06-14 17:11:16 +08:00
phantomJS 就可以了啊
我有个类似的项目,一样的 js 算出一个 token 和一个 t,然后放到 cookie 里。
在拿到 js 后,写一个接收函数,然后 phantom 执行,输出 js 里的 token 和 t,然后请求
wsds
2018-06-15 09:30:31 +08:00
@beforeuwait 不知道算的,从前端拿到 token,没有 cookie 的话,也是请求不成功的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/462129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX