智能web网页爬虫原理不用写一行代码

19次阅读

共计 507 个字符,预计需要花费 2 分钟才能阅读完成。

列表页解析

列表定位

  1. 同性质子元素排序
  2. 元素面积排序
  3. 用户确认区域后元素 xpath 并存储

分页按钮定位

  1. 不包含子元素且文字包含“下一页,点击查看更多”等文字的标签。
  2. 调用 dom.click() 方法自动进入下一页,或者提取链接,存储 xpath

列表项解析

  1. 标题解析:列表项中字体权重最大的标签为标题。用户确认后存储 xpath。
  2. 详情链接提取:标题往上找到 a 标签。解析后存储 xpath
  3. 封面解析:列表项中面积最大的图片。存储 xpath

详情页解析

内容识别

  1. 标题:标题使用列表项的标题即可。
  2. 详情:文本类子元素最多的元素,且页面面积占用最大。存储 xpath。
  3. 时间解析:正则匹配时间即可,匹配到之后尝试缓存 xpath。
  4. 来源解析:正则匹配即可,同上。

后处理

  • 详情:希望保留详情的一些排版,比如代码块,高亮区域等。将 HTML 转为 Markdown 即可。在使用时转回 HTML 显示。
  • 时间:使用 dateparser 将时间转为 ISO8601 标准时间或者时间戳即可。
  • 存储:建议存储至 MongoDB,无需提前定义表结构。

上述方案兼容 90% 的标准网站,比如拉钩,京东,segmentfault,v2ex,58 同城等等。

DEMO 已经开发完毕,交流讨论或者商业合作请发站内信。

正文完
 0