
谷歌浏览器
3款你必须晓得的爬虫工具
采集交流 • 优采云 发表了文章 • 0 个评论 • 265 次浏览 • 2020-05-31 08:01
作者:xiaoyu
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标: 查看全部
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标: 查看全部
作者:xiaoyu
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标:
基于chrome插件的爬虫可视化点选配置工具
采集交流 • 优采云 发表了文章 • 0 个评论 • 327 次浏览 • 2020-05-29 08:01
Chrome插件是一个用Web技术开发、用来提高浏览器功能的软件,它虽然就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包.
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书 查看全部
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书 查看全部
Chrome插件是一个用Web技术开发、用来提高浏览器功能的软件,它虽然就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包.
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书
phpQuery采集微信公众号文章乱码
采集交流 • 优采云 发表了文章 • 0 个评论 • 419 次浏览 • 2020-05-13 08:21
终于找到解决方案了微信文章采集 php,这是一个值得庆贺的事情....
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ... 查看全部
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ... 查看全部
终于找到解决方案了微信文章采集 php,这是一个值得庆贺的事情....
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ...
10个爬虫工程师必备的工具了解一哈
采集交流 • 优采云 发表了文章 • 0 个评论 • 295 次浏览 • 2020-05-02 08:05
工欲善其事,必先利其器。
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End------------------- 查看全部
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End------------------- 查看全部
工欲善其事,必先利其器。
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
4.Postman
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End-------------------
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End-------------------
3款你必须晓得的爬虫工具
采集交流 • 优采云 发表了文章 • 0 个评论 • 265 次浏览 • 2020-05-31 08:01
作者:xiaoyu
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标: 查看全部
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标: 查看全部
作者:xiaoyu
微信公众号:Python数据科学
知乎:
本篇博主将和你们分享几个特别有用的爬虫小工具,这些小工具在实际的爬虫的开发中会大大降低你的时间成本,并同时提升你的工作效率,真的是十分实用的工具。
这些工具当然是Google上的插件,一些扩充程序,并且经博主亲测,无任何问题。最后的最后,博主将提供小工具的获取方法。
好了,话不多说,我们来介绍一下。
我们上面提及过,当客户端向服务器端提出<ajax>异步恳求(比如 <xhr>)时,会在响应里返回 <json> 格式的数据。
在开发者工具中,我们会听到 <json> 格式数据的可视化疗效太差,就是一段繁杂的字符串,难以直接看出关键信息。
那么为了直接有效的找到关键信息,<JSON-handle>工具会将纷繁的 <json> 格式数据弄成简单清晰的树形图,极大的提升可视化疗效。
方法很简单,如果你已然安装好了小工具,点开图标弹出框框,把<json>数据复制进去即可。
当然,你也可以把从任意地方用来的<json>数据放进去,不局限于浏览器异步响应。
就以<天猫网站>为例,随便找出一个异步的恳求,response是下边这样的。
jsonp_46336857({"201509290":{"data":[{"_pos_":1,"entityType":"13","acm":"201509290.1003.1.1286473","title":"【抢券减400】Apple/苹果iPhone X 全网通4G智能手机苹果10 苹果X","typ.......
把代码放进框框里,点击OK,就弄成下边这样了数(据比较长,只截取一部分)。
上篇剖析爬虫中HTTP的秘密(基础篇)我们介绍了恳求头,而这个工具就是针对恳求头中的User-Agent数组的。它的作用是可以随便更换浏览器的User-Agent。
比如,你用Chrome浏览器浏览网页,浏览器默认身分是Chrome,但是你可以通过这个工具更换成其它任何身分。
这个最大的益处就是可以直接更换成手机身分浏览网页,而毋须用开发者工具来回切换。
使用Chrome浏览器安装插件爬虫工具,点开图标,选择你须要的身分即可。
(默认Chrome浏览器是这样的)
(变换为IOS-iphone6)
针对Xpath解析方式,Xpath-Helper可提供当前网页指定Xpath句子的查询结果。
点开图标,出现白色框框。
1.假设目标为二维码下的<百度>二字
2.开发者工具找到源码相应位置,右键copy xpath
3.复制到QUERY上面,结果手动下来
注:Xpath-Helper小工具安装后须要重启Chrome方可使用爬虫工具,请你们注意一下这个坑。
下载Chrome浏览器下载小工具插件打开Chrome更多工具—>扩展程序拖动小工具插件程序<.crx>到扩充程序里安装
安装完成后,右上角会有三个小图标:
基于chrome插件的爬虫可视化点选配置工具
采集交流 • 优采云 发表了文章 • 0 个评论 • 327 次浏览 • 2020-05-29 08:01
Chrome插件是一个用Web技术开发、用来提高浏览器功能的软件,它虽然就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包.
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书 查看全部
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书 查看全部
Chrome插件是一个用Web技术开发、用来提高浏览器功能的软件,它虽然就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包.
Chrome插件没有严格的项目结构要求,只要保证本目录有一个manifest.json即可,也不需要专门的IDE,普通的web开发工具即可。
从右上角菜单->更多工具->扩展程序可以步入 插件管理页面,也可以直接在地址栏输入chrome://extensions 访问。
网上介绍chrome插件开发的文章已经好多了,这里就不赘言了,只列一些项目中须要的
这是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须置于根目录。其中,manifest_version、name、version3个是必不可少的,description和icons是推荐的。
下面给出的是一些常见的配置项,均有英文注释
{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action":
{
"default_icon": "img/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
// 这里仅仅是为了演示content-script可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
// 权限申请
"permissions":
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"],
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://www.baidu.com",
// 覆盖浏览器默认页面
"chrome_url_overrides":
{
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
// Chrome40以前的插件配置页写法
"options_page": "options.html",
// Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui":
{
"page": "options.html",
// 添加一些默认的样式,推荐使用
"chrome_style": true
},
// 向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": { "keyword" : "go" },
// 默认语言
"default_locale": "zh_CN",
// devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html"
}
所谓content-scripts,其实就是Chrome插件中向页面注入脚本的一种方式(虽然名为script,其实还可以包括css的),借助content-scripts我们可以实现通过配置的形式轻松向指定页面注入JS和CSS(如果须要动态注入,可以参考下文),最常见的例如:广告屏蔽、页面CSS订制,等等。
示例配置:
{
// 需要直接注入页面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["<all_urls>"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
}
],
}
特别注意,如果没有主动指定run_at为document_start(默认为document_idle),下面这些代码是不会生效的
document.addEventListener('DOMContentLoaded', function()
{
console.log('我被执行了!');
});
content-scripts和原始页面共享DOM,但是不共享JS,如要访问页面JS(例如某个JS变量),只能通过`injected
js来实现。content-scripts不能访问绝大部分chrome.xxx.api`,除了下边这4种:
由于content-script可以注入到页面,所以我们即将开发的插件的主要功能就在这里
后台(姑且如此翻译吧)爬虫软件增加网页访问,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关掉而关掉,所以一般把须要仍然运行
的、启动就运行的、全局的代码放到background上面。
background的权限十分高,几乎可以调用所有的Chrome扩充API(除了devtools),而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要
求对方设置CORS。
经过测试,其实不止是background,所有的直接通过chrome-extension://id/xx.html这些方法打开的网页都可以无限制跨域。
配置中,background可以通过page指定一张网页,也可以通过scripts直接指定一个JS,Chrome会手动为这个JS生成一个默认的网页:
{
// 会一直常驻的后台JS或后台页面
"background":
{
// 2种指定方式,如果指定JS,那么会自动生成一个背景页
"page": "background.html"
//"scripts": ["js/background.js"]
},
}
这里顺带介绍一下event-pages,它是一个哪些东西呢?鉴于background生命周期很长,长时间挂载后台可能会影响性能,所以Google又弄一个event-pages,在配置文件上,它与background的惟一区别就是多了一个persistent参数:
{
"background":
{
"scripts": ["event-page.js"],
"persistent": false
},
}
它的生命周期是:在被须要时加载,在空闲时被关闭,什么叫被须要时呢?比如第一次安装、插件更新、有content-script向它发送消息,等等。
我们要开发的插件目前用到了background和content_scripts这两个选项,如果之后添加新功能时再瞧瞧其他的选项爬虫软件增加网页访问,对chrome插件开发感兴趣的朋友可以瞧瞧这本书
phpQuery采集微信公众号文章乱码
采集交流 • 优采云 发表了文章 • 0 个评论 • 419 次浏览 • 2020-05-13 08:21
终于找到解决方案了微信文章采集 php,这是一个值得庆贺的事情....
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ... 查看全部
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ... 查看全部
终于找到解决方案了微信文章采集 php,这是一个值得庆贺的事情....
原来是因为陌陌在源码中加入了防采集代码<!--headTrap<body></body><head></head><html></html>-->,把文章源码中的这一段除去就可以了!
具体代码如下:
public function getCon(){
header('Content-type: text/html; charset=utf-8');
import('Vendor.QL.QueryList');
$w_url=$_POST['wurl']; //接收到的文章地址
// 测试文章地址
// $w_url='http://mp.weixin.qq.com/s?__biz=MzA5NzQ5OTMxMA==&mid=2650621512&idx=1&sn=2059946e820805c0d62a450aa3af62be&chksm=88960789bfe18e9f47417eb45cd8efe458af9e93fea3e8e4e242ea2376fd3e4c69f5218293cb&scene=0#wechat_redirect';
// echo "<script>alert('".$w_url."');</script>";
$html = file_get_contents($w_url); //获取文章源码并保存到参数中
// echo "<script>alert('".$html."');</script>";
$html = str_replace("<!--headTrap<body></body><head></head><html></html>-->", "", $html); //去除微信中的抓取干扰代码
// die($w_url);<br /><br />// var_dump($html);
$data = \QueryList::Query($html,array(
//采集规则库
//'规则名' => array('jQuery选择器','要采集的属性'),
'titleTag' => array('title','text'),
// 'title' => array('#activity-name','text'),
'content' => array('body','text'),
// 'image' => array('img','src'),
//微信规则
'contentWx' => array('#js_content','text'),
// 'imageWx' => array('img','data-src'),
// 'conText' => array('.rich_media_content>p','text'),
))->data;
foreach ($data as $k => $v) {
$data[$k]['imageWx'] = $this->cut_str($v['imageWx'],'?',0);
}
//打印结果
// print_r($data);
$this->assign('conD',$data);
$this->display();<br /><br /> }
Chrome浏览器保存微信公众号文章中的图片
用chrome浏览器打开微信公众号文章中时,另存为图片时保存的是640.webp,不是图片本身,用IE则没有此问题.大部分chrome插件也难以保存图片. 经过多番尝试,找到一款插件可以批量保存陌陌公 ...
pc端引入微信公众号文章
最近做了一个小需求,结果坑非常多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘言了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显 ...
使用Python爬取微信公众号文章并保存为PDF文件&lpar;解决图片不显示的问题&rpar;
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
【技巧】如何使用客户端发布BLOG&plus;如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+怎样快速发布微信公众号文章 1 BLOG文档结构图 2 前言部份 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以把握如下的技能,也 ...
用Markdown写微信公众号文章
目前微信公众号的编辑器是不支持Markdown句型的,那如何办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...
小技巧微信文章采集 php,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截至今早,还是沿袭富文本的形式.不是说富文本不好,但每次悉心撰写的内容 ...
破解陌陌防盗链&amp&semi;微信公众号文章爬取方案
破解陌陌图文防盗链: 图片解除防盗链: ...
微信公众号文章转语音tts
微信公众号上面的文章在走路或则驾车时侯不方便浏览,希望能降低一个文字转语音功能,那么问题来了,到底哪家文字转语音技术强呢? 经过验证,目前发觉最好用的还是balabolka ,国内的哪些“录音啦”,试 ...
你所不知道的 Kindle - 阅读微信公众号文章
Kindle 是一款十分优秀的阅读设备,它为我们提供了十分舒服的阅读体验,并且配合强悍的亚马逊图书资源,应该是目前最好的阅读设备之一.Kindle 在已有的成就下还仍然在努力提高用户体验.为中国用户开 ...
go语言的命令行库
命令行应用一般太小,程序猿们也不喜欢为它编撰注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了. 这个项目因而而生.安装:go g ...
2014多校第一场A题 &vert;&vert; HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
chromedriver禁用图片,禁用js,切换UA
selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速率太慢.如果可以不加载图片等操作,网页加载速率都会快不少,代码中列举了了禁 ...
反射 学习笔记之Class类的使用
1 java世界中万事万物皆对象,除了2个特殊情况 int float等这种基本数据类型,(但是也都有Integer和Float等封装类做了填补) java staic定义的,它不是属于对象的,而是 ...
oracle INS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发觉开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
【C&sol;C&plus;&plus;】查找(一):静态查找表
{静态查找表 + 动态查找表} 所谓动态,就是,找的时侯没有则添加,或者能删掉 关键字:primary key:用来表示查找表中的一条记录 {主关键字 + 次关键字} 主关键字是惟一的,用来惟一的标示 ...
水仙花在python3在pycharm的实现
---恢复内容开始--- #方法一:#-*- coding: utf-8-*-while True: num = input("请输入一个三位数") num = int(num) ...
POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
170629、springboot编程之Druid数据源和监控配置二
上篇是一种配置方法,虽然我们创建了servlet.filter并且没有任务编码,看着是不是太不爽.ok,接下来说一下简介的配置方法,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...
百度地图API 显示区域边界及地名定位
百度地图API 显示区域边界及地名定位 这个定位一共用了两个方式组成 一个是定位勾画区域边界线,另一个是地名定位 原理: 当用户输入市.市.县.区这些大地名时,我们要定位用户输入的这个位置,并显示轮廓 ...
10个爬虫工程师必备的工具了解一哈
采集交流 • 优采云 发表了文章 • 0 个评论 • 295 次浏览 • 2020-05-02 08:05
工欲善其事,必先利其器。
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End------------------- 查看全部
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End------------------- 查看全部
工欲善其事,必先利其器。
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
4.Postman
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
https://mmbiz.qpic.cn/mmbiz_pn ... %3Dpng" />
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End-------------------
工欲善其事必先利其器的道理相信你们都懂。而作为常常要和各大网站做拉锯战的爬虫工程师们,则更需要借助借助好身边的一切法器,以便更快的击溃对方防线。今天我就以日常爬虫流程,给你们介绍十款工具,相信你们把握以后,必定才能在工作效率上,提升一个量级
1.Chrome
Chrome属于爬虫的基础工具,一般我们用它做初始的爬取剖析,页面逻辑跳转、简单的js调试、网络恳求的步骤等。我们早期的大部分工作都在它里面完成,打个不恰当的比喻,不用Chrome,我们就要从智能时代倒退到马车时代
同类工具: Firefox、Safari、Opera
2.Charles
Charles与Chrome对应,只不过它是拿来做App端的网路剖析,相较于网页端,App端的网路剖析较为简单爬虫软件,重点放到剖析各个网路恳求的参数。当然,如果对方在服务端做了参数加密,那就涉及逆向工程方面的知识,那一块又是一大筐子的工具,这里姑且不谈
同类工具:Fiddler、Wireshark、Anyproxy
3.cUrl
维基百科这样介绍它
cURL是一个借助URL句型在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
在做爬虫剖析时,我们常常要模拟一下其中的恳求,这个时侯假如去写一段代码,未免很小题大做了,直接通过Chrome拷贝一个cURL,在命令行中跑一下瞧瞧结果即可,步骤如下
4.Postman
当然,大部分网站不是你拷贝一下cURL链接,改改其中参数就可以领到数据的,接下来我们做更深层次的剖析,就须要用到Postman“大杀器”了。为什么是“大杀器”呢?因为它着实强悍。配合cURL,我们可以将恳求的内容直接移植过来,然后对其中的恳求进行整修,勾选即可选择我们想要的内容参数,非常甜美
5.Online JavaScript Beautifier
用了以上的工具,你基本可以解决大部分网站了,算是一个合格的中级爬虫工程师了。这个时侯,我们想要进阶就须要面对更复杂的网站爬虫了,这个阶段,你除了要会前端的知识,还须要了解一些后端的知识,因为好多网站的反爬举措是置于后端的。你须要提取对方站点的js信息,并须要理解和逆向回家,原生的js代码通常不适于阅读,这时,就要它来帮你低格吧
6.EditThisCookie
爬虫和反爬虫就是一场没有烽烟的拉锯战,你永远不知道对方会给你埋什么坑,比如对Cookies动四肢。这个时侯你就须要它来辅助你剖析,通过Chrome安装EditThisCookie插件后,我们可以通过点击右上角小图标,再对Cookies里的信息进行增删改查操作,大大提升对Cookies信息的模拟
7.Sketch
当我们早已确定能爬取以后,我们不应当着急动手写爬虫。而是应当着手设计爬虫的结构。按照业务的需求,我们可以做一下简单的爬取剖析爬虫软件,这有助于我们以后开发的效率,所谓磨刀不误砍柴工就是这个道理。比如可以考虑下,是搜索爬取还是遍历爬取?采用BFS还是DFS?并发的恳求数大约多少?考虑一下这种问题后,我们可以通过Sketch来画一下简单的构架图
同类工具:Illustrator、 Photoshop
终于要进行开发了,经过前面的那些步骤,我们到这一步,已经是万事俱备只欠东风了。这个时侯,我们仅仅只须要做code和数据提取即可
8.XPath Helper
在提取网页数据时,我们通常须要使用xpath句型进行页面数据信息提取,一般地,但我们只能写完句型,发送恳求给对方网页,然后复印下来,才晓得我们提取的数据是否正确,这样一方面会发起好多不必要的恳求,另外一方面,也浪费了我们的时间。这个就可以用到XPath Helper了,通过Chrome安装插件后,我们只须要点击它在对应的xpath中写入句型,然后便可以太直观地在左侧看见我们的结果,效率up+10086
9.JSONView
我们有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。这个时侯,我们安装这个插件后,就可以很方便的来查看Json数据啦
10.JSON Editor Online
JSONView是直接在网页端返回的数据结果是Json,但多数时侯我们恳求的结果,都是后端渲染后的HTML网页数据,我们发起恳求后得到的json数据,在终端(即terminal)中难以挺好的诠释怎样办?借助JSON Editor Online就可以帮你挺好的低格数据啦,一秒低格,并且实现了贴心得折叠Json数据功能
既然见到这儿,相信大家一定是真爱粉啦,送大家一个彩蛋工具。
0.ScreenFloat
它能来干嘛?见名思意,就是一个屏幕漂浮工具,然而我近来才发觉它非常重要,尤其我们须要剖析参数时,经常须要在几个界面来回切换,这个时侯有一些参数,我们须要比较她们的差别,这个时侯,你就可以通过它先漂浮着,不用在几个界面中来切换。非常便捷。再送你一个隐藏玩法,比如前面这样
有其他好用的工具,欢迎小伙伴留言哈!
-------------------End-------------------