Python 中怎么执行 js?

2018 年 6 月 11 日
 wsds

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

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

7992 次点击
所在节点    Python
34 条回复
hahastudio
2018 年 6 月 11 日
@wsds 如果你是这么认为的,我觉得你需要看更多的东西了。。。
kevanbin
2018 年 6 月 11 日
```
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 年 6 月 11 日
@kevanbin 为什么这个页面用这个方法 不行? http://szjw.changsha.gov.cn/ywcx/
mitnick
2018 年 6 月 11 日
Leigg
2018 年 6 月 11 日
pyv8
param
2018 年 6 月 11 日
@wplct nodejs 你写个脚本调用不好吗
Zzdex
2018 年 6 月 11 日
可以用 execjs
Alpha
2018 年 6 月 11 日
phatomjs 就可以解决问题
congeec
2018 年 6 月 11 日
PyV8 老了,用 py_mini_racer
flowfire
2018 年 6 月 11 日
headless chrome 了解一下
kevanbin
2018 年 6 月 12 日
@wsds iframe 中的代码,无法在网页源代码中得到
wsds
2018 年 6 月 12 日
@kevanbin 了解了,感谢
beforeuwait
2018 年 6 月 14 日
phantomJS 就可以了啊
我有个类似的项目,一样的 js 算出一个 token 和一个 t,然后放到 cookie 里。
在拿到 js 后,写一个接收函数,然后 phantom 执行,输出 js 里的 token 和 t,然后请求
wsds
2018 年 6 月 15 日
@beforeuwait 不知道算的,从前端拿到 token,没有 cookie 的话,也是请求不成功的

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

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

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

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

© 2021 V2EX