【如何优雅地使用c语言编写爬虫】
    Saturday, July 23, 2016
    10:11 AM

    |

    | | —- |

    | Tags: #微博 |

    计算机生成了可选文字:
    IT程序猿
    07/22/2016
    【如何优雅地使用c语言编写爬虫】大家在平时或多或少地都会有编写网络爬虫的需求。一般来说,编写爬虫的首选自然非python莫属,除此之外,java等语言也是不错的选择。http://t.cn/R4y6pJ7(来自: GitHub)
    ![计算机生成了可选文字: 0 本 文 来 自 : Git b 版 权 归 届 原 作 者 如 何 优 雅 地 使 用 ( 语 言 编 写 爬 虫 0 @仃 程 厚 猿 & & 酷 勤 网 制 作 大 家 在 平 时 或 多 或 少 地 都 会 有 写 网 络 爬 虫 的 需 求 。 一 般 来 说 , 编 写 爬 虫 的 苜 选 然 非 python 莫 届 , 除 此 之 外 , java 等 语 言 也 是 不 错 的 选 降 。 选 降 上 述 语 言 的 原 因 不 仅 仅 在 于 它 们 均 有 菲 常 不 错 的 网 络 请 求 库 和 字 符 串 处 理 库 , 还 在 于 基 于 上 述 语 言 的 爬 虫 框 架 非 常 之 多 和 完 善 。 良 好 的 爬 虫 框 架 可 以 确 保 爬 虫 程 序 的 喼 定 性 , 以 及 编 写 程 序 的 便 捷 性 。 所 以 , 这 个 ( sp ] der 爬 虫 库 的 使 命 在 于 , 我 们 能 够 使 ( 语 言 , 依 然 能 够 优 雅 地 编 写 爬 虫 程 序 。 上 爬 虫 的 特 性 配 置 方 便 。 使 用 一 句 设 置 函 数 , 即 可 定 义 us “ 以 及 抓 取 线 程 和 a g e n t , c 0 0 k i e , t i Ill e 0 u t , p r 0 x 析 线 程 的 最 大 数 量 。 程 序 逻 辑 独 立 。 用 户 可 以 分 别 定 义 爬 虫 的 解 析 函 数 , 和 数 据 持 久 化 函 数 。 并 且 对 于 解 析 到 的 新 “ 1 , 用 户 可 以 使 用 供 的 add 山 . 1 函 数 , 将 其 加 cspider 入 到 任 务 队 列 中 。 便 捷 的 字 符 串 处 理 。 中 供 了 基 于 “ re 的 简 cspider 单 的 正 则 表 达 式 函 数 , 基 于 Iibxm12 的 x “ th 解 析 函 数 , 以 及 用 于 解 析 js 。 n 白 勹 CJS 〔 〕 N 库 。 高 效 的 抓 取 。 基 于 lib 旧 调 度 抓 取 线 程 和 解 cspider 析 线 程 , 使 用 curl 作 为 其 网 络 请 求 库 。 获 取 cspider t 自 定 义 user agent, cookie, timeout 及 抓 取 线 程 和 解 析 线 程 的 最 大 数 量 。 加 初 始 要 抓 取 的 “ 1 到 任 务 队 列 。 编 写 解 析 函 数 和 数 据 持 久 化 函 数 。 启 动 爬 虫 。 例 子 PYOXY 先 来 看 下 简 单 的 爬 虫 例 子 会 在 后 面 详 细 讲 解 例 子 。 #include<cspider/spider.h 自 定 义 的 解 析 函 L d 为 获 取 到 的 html 页 面 字 符 串 void p(cspider t cspider , char (d) { char _get[100 _ffihtml xpat xpath(d , i nt s i z e “//body/div[oclass= wrap’]/di’ f 0 r ( i S i ze 将 获 取 到 的 电 影 名 称 丿 持 久 化 saveString(cspider, get i]) 据 持 久 化 L 对 上 面 解 祈 函 中 调 用 的 saveString() void s(void _str) { (char )str, char _get printf(“%sn r e t i nt 111 a i n 0 初 始 化 spider init_cspider() cspider t _spider Il 0 z i 11 a / 5 . 0 ()l a c i nt 0 s h ‘ I nt e 1 Il a c char _agent //char _cookie “bid=s3/yuH5Jd/I 11 = 10 8 2 8 8 ; v i e 设 置 要 抓 取 页 面 的 url CS setopt url(spider , s 0 . t v . s 0 hu . c 0111/ 1 i s t p 110 0 user agent CS setopt useragent(spider , agent) CS setopt_cookie(spider , cookie) 传 入 解 析 和 据 持 久 化 的 指 针 CS setopt process(spider , p) CS setopt_save(spider , s) 设 罱 线 裎 量 CS setopt threadnum(spider , CS setopt threadnum(spider , /FILE _fp f 0 p e n ( ” 10 //cs_setopt_logfile(spider , 廾 始 爬 虫 return cs_run(spider) 例 子 讲 解 DOWNLOAD , SAVE , 2 ) , 2 ) , init_cspider() 获 取 初 始 的 cspider t *spider 这 类 函 数 可 以 来 进 行 初 始 化 设 cspidero CS setopt_xxx 置 。 其 中 要 注 意 的 :CS setopt process(spider,p) 5CS setopt_save(spider 它 们 分 别 设 置 了 解 析 函 数 p 和 数 据 時 久 化 函 数 s , 这 叻 个 函 数 需 要 F 己 实 觋 。 在 解 忻 函 数 中 , F 要 定 义 解 忻 的 规 则 , 并 对 解 忻 得 到 的 字 符 串 可 以 调 saveString 行 時 久 化 , 或 者 是 调 addlJr1 将 url 加 入 到 任 务 队 列 中 在 s “ estri 中 传 入 的 字 符 串 会 在 F 定 义 的 数 据 恃 久 函 数 中 得 到 处 理 此 时 , 户 可 以 选 降 输 出 到 文 件 或 数 据 库 等 。 最 后 调 即 可 启 动 爬 虫 。 cs_run(spider) 具 体 的 AP 参 数 可 在 这 里 查 看 总 结 紆 快 使 de r 爬 虫 框 架 来 写 爬 虫 吧 ! 如 果 在 使 过 程 CSPI 中 发 i!0bug , 欢 迎 反 馈 。 来 自 : http://t.cn/R4yLmSm
    查看源微博
    已使用 Microsoft OneNote 2016 创建。