页面地址: http://acm.hdu.edu.cn/showpro...
爬取的目标:
想要爬取这些个公式的代码,Chrome按F12看到的代码:
Chrome
F12
但是爬取到的代码如下:
这个代码并不能显示正确的公式,貌似这些代码都是js生成的,该如何爬取到这些代码。
js
这是MathJax工具解析的。在HTML代码中查看公式p的下一个id为MathJax-Element-X的script,复制里面的内容,在公式前后加两个$$(前后都是两个美元符,所以一共是四个)最后使用MathJax解析就可以了。说再多不如上图:
先抓包,把ajax请求抓出来,关键是看怎么构造该请求,主要是一些参数的确定。套路大概下面几个:1 在上下文搜搜相关参数是否存在,如果是服务器返回的,就直接请求服务器获得该参数;2 如果该参数很明显不变或者变化有规律,可以直接伪造;3 如果参数很复杂且没规律,那么需要搜索参数的key,找到加密的js,然后构造参数的值,得到ajax url;4 实在难度太大那么用selenium等自动化工具驱动浏览器来访问,它会直接给你渲染好所有js
这是MathJax工具解析的。
在HTML代码中查看公式p的下一个id为MathJax-Element-X的script,复制里面的内容,在公式前后加两个$$(前后都是两个美元符,所以一共是四个)最后使用MathJax解析就可以了。
说再多不如上图:
先抓包,把ajax请求抓出来,关键是看怎么构造该请求,主要是一些参数的确定。套路大概下面几个:1 在上下文搜搜相关参数是否存在,如果是服务器返回的,就直接请求服务器获得该参数;2 如果该参数很明显不变或者变化有规律,可以直接伪造;3 如果参数很复杂且没规律,那么需要搜索参数的key,找到加密的js,然后构造参数的值,得到ajax url;4 实在难度太大那么用selenium等自动化工具驱动浏览器来访问,它会直接给你渲染好所有js