js的网页爬虫爬不到吗

JavaScript019

js的网页爬虫爬不到吗,第1张

不是爬不到

是因为用js生成的网页,是通过浏览器加载js代码之后,由js动态生成的。

用爬虫直接去抓网页的话,抓下来的是原始代码,浏览器还未解析过的内容。

纯 html 的话,抓下来可以直接拿来用,但是如果是由 js 动态生成的网页的话,就没办法直接用了。

像通过js动态加载的网页,理论上如果能用开源的浏览器内核将网页解析出来的话,通过浏览器内核提供的接口,完全可以把网页最终的 html 拿出来

纯粹前端的js 是不能 跨域 获取 cookie的

xxx.com 的js 代码 只能得到 xxx.com的cookie,拿不到 yyy.com

当然如果你有办法 在 yyy.com 写入受到自己控制的 html文件,你就可以写代码去拿到 对应的cookie,但看你的需求 应该你没有yyy.com 的权限

所以 要结合其他方案,推荐一下两种:

使用 electron ,electron 你可以认为是受js控制的浏览器引擎,所以你可以用它访问 yyy.com 拿到cookie,再接着做你的事情

或者 使用 puppeteer(Google 官方出品的 headless Chrome node 库)

Puppeteer 提供了一系列的 API,可以在无 UI 的情况下调用 Chrome 的各种功能,适用于爬虫、自动化处理等各种情景。

爬虫就是自动提取网页的程序,如百度的蜘蛛等,要想让自己的网站更多页面被收录,首先就要让网页被爬虫抓取。

如果你的网站页面经常更新,爬虫就会更加频繁的访问页面,优质的内容更是爬虫喜欢抓取的目标,尤其是原创内容。

如果你做了许多努力仍没有被爬虫抓取,可以看一下老渔哥给出的两点建议:

1、不建议站点使用js生成主体内容,如过js渲染出错,很可能导致页面内容读取错误,页面则无法被爬虫抓取。

2、许多站点会针对爬虫做优化,建议页面长度在128k之内,不要过长。