[爬虫教程] 教你如何在一天内学会写爬虫

2016-07-23 15:40:41 +08:00
 oceantree

[文档目录]

  1. 第一个 demo
  2. configs 详解——之成员
  3. configs 详解——之 field
  4. configs 详解——之 site, page 和 console
  5. configs 详解——之回调函数
  6. 爬虫进阶开发——之内置函数
  7. 爬虫进阶开发——之模板化
  8. 爬虫进阶开发——之图片云托管
  9. 爬虫进阶开发——之自动 IP 代理
  10. 爬虫进阶开发——之验证码识别
  11. 爬虫进阶开发——之自动 JS 渲染
  12. 爬虫进阶开发——之技巧篇
  13. 两个完整 demo
  14. 开发爬虫的常用工具
  15. 常见问题

​ [ JS 爬虫]

这是一个 JS 爬虫,一天之内认真读完的话,就可以根据 demo 自己写出简单的爬虫来了,可以试下

[常见问题]

鉴于内容很长,先把爬虫开发一些常见的问题放在这给大家参考:

A : domains 定义爬虫爬取指定域名下的网页,非域名下的 url 会被忽略,可提高爬取速度。

值得注意,如果 scanUrls , contentUrls 和 helperUrls 不在 domains 包含的域名范围内,那么爬虫将无法爬取到数据。

Q :为什么 contentUrlRegexes 和 helperUrlRegexes 正则表达式中的转义字符要加双反斜杠\?

A :因为 contentUrlRegexes 和 helperUrlRegexes 的每个正则表达式都是字符串类型,如下所示:

contentUrlRegexes: ["http://wallstreetcn\.com/node/\d+"], helperUrlRegexes: ["http://wallstreetcn\.com/news(\?/page=\d+)?"], 在 JS 语法中规定若正则表达式以字符串形式表示,其中的转义字符需加双反斜杠。

Q :为什么我的爬虫爬取到的图片都是裂图或网站默认图?

A :首先,检查你的任务配置中是否勾选了“自动缓存图片”,我们建议勾选上,因为这样做,无论你要爬取的网站图片是否加了“防盗链”,我们的系统都会帮你把图片缓存到神箭手云服务器上;

然后,判断需要爬取的图片 url 的后缀名是不是 jpg , jpeg , png 或 gif 。如果是,请耐心等待几分钟,因为我们的图片缓存服务器还在努力下载图片中。

Q :为什么我一定要将爬取到的文章发布时间转换成 Unix 时间戳?

A :当发布文章或问答到网站时,需要通过我们提供的发布插件进行发布,而我们的发布插件对发布时间有特殊要求,需要 Unix 时间戳。

值得注意,如果爬取的数据不需要发布到网站,则不用对时间做处理。

Q :我想按网站分类爬取文章,为什么爬到的数据中总是包含其他分类的文章?

A :爬取到的文章不够精准,说明你的 contentUrlRegexes 或 helperUrlRegexes 中的正则表达式有问题,匹配了其他分类的 contentUrl (内容页 url )或 helperUrl (列表页 url ),请仔细检查并进行修改。

Q :为什么我爬取的网页数据中有很多无用 html 标签,怎么处理?

A :爬取的数据中包含无用 html 标签,原因可能是,你写的 XPath 不够精确,抽取的内容中包含了很多无用 html 标签。如果无法通过 XPath 来解决,请考如何去掉网页中的广告。

Q :如何爬一个有反爬虫的网站?

A :在 configs 对象中添加 enableProxy: true ,就能使用我们平台提供的 IP 代理服务了。

[完整内容]

爬虫知识大全完整部分详见此博文: http://www.cnblogs.com/destim/p/5540993.html

3851 次点击
所在节点    分享发现
1 条回复
av1254
2016-11-28 14:12:57 +08:00
大兄弟,找不到页面了

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

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

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

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

© 2021 V2EX