用c+libcurl+PCRE写爬虫1--编译libcurl
打算用c语言和libcurl库在windows下实现一些爬虫操作。
一、编译libcurl
1、编译zlib
1)下载zlib http://sourceforge.net/projects/libpng/files/zlib/ 找到最新版下载,这里我下载的是1.2.11版本
2)打开 cmd 切换目录到 zlib-1.2.11 源码目录下
3)执行 nmake -f win32\Makefile.msc 如果nmake错误,则执行VS目录下的(我这里是VS2015) C:\program files\Microsoft Visual Studio 14\Common7\Tools\vsvars32.bat
4)编译通过 则生成了 zlib1.dll zlib.lib
2、编译openssl
1)下载 https://www.openssl.org/source/old/1.0.0/ 下载的1.0.0.c版本,1.1.0版本没编译通过
2)下载 ActivePerl http://www.activestate.com/activeperl/downloads
3)安装 ActivePerl
4)打开cmd 切换目录到 openssl源码目录
5)执行 perl Configure VC-WIN32
6)执行 ms\do_ms
7)修改 ms\ntdll.mak 和 ms\nt.mak 去掉CFLAGS 中的 /WX 选项
8)执行 ms\ntdll.mak 即可编译
3、编译libcurl
1)下载libcurl https://curl.haxx.se/download.html 选择的是目前最新版 7.53.1

2)根据源代码根目录下 winbuild 目录下的 BUILD.WINDOWS.txt 的提示 在libcurl源码的同级目录下建立 deps 文件夹

3)将openssl源码下的include下的openssl目录拷贝到 deps\include 目录下
将zlib源码下的 zconf.h zlib.h zutil.h 拷贝到 deps\include 目录下
将openssl 编译好的 libeasy32.lib ssleay.lib 拷贝到deps\lib 目录下
将zlib编译好的 zlib.lib 拷贝到 deps\lib 目录下
4)cmd 进入到winbuild 目录
5)执行 namke -f Makefile.vc mode=dll WITH_SSL=dll WITH_ZLIB=DLL VC=14 进行编译
用c+libcurl+PCRE写爬虫1--编译libcurl的更多相关文章
- 用c+libcurl+PCRE写爬虫2--好用的正则表达式
写爬虫最重要的就是正则表达式的处理(爬出来的数据的筛选,清洗,过滤等操作). 通过一篇文章 http://blog.csdn.net/quaful/article/details/6460880 来确 ...
- 手把手教你用.NET Core写爬虫
写在前面 自从上一个项目58HouseSearch从.NET迁移到.NET core之后,磕磕碰碰磨蹭了一个月才正式上线到新版本. 然后最近又开了个新坑,搞了个Dy2018Crawler用来爬dy20 ...
- 让你从零开始学会写爬虫的5个教程(Python)
写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...
- [Python]新手写爬虫全过程(已完成)
今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...
- 如何编译libcurl
1. Android •1.1配置 •1.2 Make •1.3的参数配置 2.iOS 3.windows 4.关于头文件 注释 本文档介绍了如何为Android,iOS和Windows编译libcu ...
- vc2015 编译libcurl带openssl
1.先编译zlib下载地址 http://zlib.net/ 我这边vc2015编译需要配置环境变量,不知道是装了wdk的原因还是多个vc版本的原因 设置环境变量lib和include路径 INCLU ...
- scrapy写爬虫是出现no module named win32api错误
windows下利用scrapy(python2.7)写爬虫,运行 scrapy crawl dmoz 命令时提示:exceptions.ImportError: No module named wi ...
- PHP, Python, Node.js 哪个比较适合写爬虫?
PHP, Python, Node.js 哪个比较适合写爬虫? 1.对页面的解析能力2.对数据库的操作能力(mysql)3.爬取效率4.代码量推荐语言时说明所需类库或者框架,谢谢.比如:python+ ...
- [Python]新手写爬虫全过程(转)
今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...
随机推荐
- Codeforces Round #549 (Div. 2)B. Nirvana
B. Nirvana time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- XMPP后台搭建
XMPP的环境搭建 1.下载MySQL 登录myql官网,点击页面下面的按钮 然后安装. 2.安装MySQL图形化管理工具mysql-workbench 同样进入mysql的官网, 下载 http:/ ...
- EXPORT Man Information for Linux use COMMAND col
col命令 是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备.在许多UNIX说明文件里,都有RLF控制字符.当我们运用shell特殊字符>和>>,把 ...
- 牛客网NOIP赛前集训营-提高组(第四场)B区间
牛客网NOIP赛前集训营-提高组(第四场)B区间 题目描述 给出一个序列$ a_1 \dots a_n$. 定义一个区间 \([l,r]\) 是好的,当且仅当这个区间中存在一个 \(i\),使得 ...
- Java传参都是传引用变量的副本
最近做练习时碰到一个问题,Java到底是怎样传参的,经过查资料与实验,我发现Java传参都是传引用变量的副本值. 1 Java中的引用变量 1.1 字面值引用变量:即基本数据类型的引用变量 ,如 in ...
- 851 AlvinZH的鬼畜密码(背包DP大作战N)
851 AlvinZH的鬼畜密码 思路 难题.动态规划. 先判断字符串是否合理(可翻译),然后分段处理,每一小段用动态规划求出解法数. dp[i]:字符串str[0~i]的解法数.通过判断str[i] ...
- python之小记with open...as..上下文管理器
之前在学习file文件对象是说过,open文件操作结束后要关闭文件,否则会一直占用资源.但是当出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,文件无法关闭 with o ...
- 洛谷 P3975 / loj 2102 [TJOI2015] 弦论 题解【后缀自动机】【拓扑排序】
后缀自动机入门. 题目描述 为了提高智商,ZJY 开始学习弦论. 这一天,她在<String theory>中看到了这样一道问题:对于一个给定的长度为 \(n\) 的字符串,求出它的第 \ ...
- SpringBoot学习(一)
一.Spring Boot Spring是JavaEE轻量级代替品.无需开发重量级的(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的POJO对 ...
- 使用Redis实现锁(支持分布式应用)(整理网络资料)
使用Redis实现锁(支持分布式应用) 1. 简介 使用Redis指令setnx.expire.getset等操作实现互斥资源的访问 本文内容来着网络整理,参考: http://www.linu ...