Python爬虫(一):环境配置

由于项目需要,最近开始学习和使用Python写web爬虫。要理解网络爬虫最好的例子就是使用最多的搜索引擎,网络爬虫是搜索引擎最重要的一部分。搜索引擎根据用户的输入关键字,使用一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列中并最终呈现给用户。

实际项目中,我们往往不需要爬取所有网站的源码,而只是对感兴趣的某个或某几个网站做定向爬取,爬取的内容也不仅仅是URL,而是根据具体的项目需求而定。

项目背景

根据用户关键字爬取www.pnas.org等6个文献搜索引擎的检索结果并记录文献标题、作者、时间、邮件和URL等信息,使用Windows桌面软件以列表的形式呈现符合检索关键字的条目。

方案选取

根据背景描述,至少存在两种可选择方案:

  1. API,如果网站为用户提供了开放的API,那么事情变得简单很多,根据用户关键字调用相应的API就能获取数据库中文献相关信息
  2. 网络爬虫,如果网站没有提供API,那么只能通过爬虫的方式获取的想要的信息。

由于6个目标网站都没有提供相应的API,所以只能硬着头皮选择方案2。根据需求可以发现,项目涉及到两方面的技术:爬虫windows GUI。虽然C/C++,Java,Python,Ruby等等都能够写爬虫,但是从开发周期和开发成本的角度出发,Python有Scrapy这种强大的网络爬虫库可供使用自然成为首选方案。Windows GUI可选的空间就不那么大了,MFC,Qt就是最经典的,其中PyQt是Python版本的Qt库,与Python结合编写GUI程序最为适合,并且从跨平台的角度出发,Python+PyQt也成为了最佳的组合,虽然性能上可能会有一些牺牲。

Python和Scrapy爬虫配置

Scrapy是用Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

python安装

我机器上原本安装了python 3.4,安装scrapy的时候失败,发现原来scrapy现在只支持python 2,于是卸载python 3.4,安装python 2.7.6。

  • 下载python 2.7.6的windows版本;
  • 安装python 2.7.6,添加X:/Program Files/Python 2.7.6X:/Program Files/Python 2.7.6/script到PATH环境变量,并在cmd下验证是否安装成功;

pip安装

下载get_pip.py,并运行

python get_pip.py

将安装pip和setuptools到X:/Program Files/Python 2.7.6/script

scrapy安装

使用pip安装scrapy,运行

pip install scrapy

出现以下错误:
Python爬虫(一):环境配置_第1张图片
原因:没有安装python 2.7的编译器
解决:下载Micorsoft Visual C++ Compiler for Python 2.7,并安装

再次运行pip install scrapy,出现以下错误:
错误2
原因:没有安装xml库
解决:使用easy_install安装xmk库

esay_install lxml

再次安装pip install scrapy,终于成功!
scrapy安装成功

运行scrapy

按照Scrapy入门教程写好一个爬虫,并按照教程运行

scrapy crawl dmoz

错误:
错误3
问题:缺少win32
解决:下载安装pywin32

再次运行scrapy crawl dmoz
错误:
错误4
问题:这是python2 mimetype的bug
解决:Python 2.7.6/lib/mimetype.py中加入

reload(sys)
sys.setdefaultencoding('utf-8')

重新运行scrapy crawl dmoz
错误:
这里写图片描述
解决:在Python 2.7.6/lib/mimetype.py中加入

reload(sys)
sys.setdefaultencoding('gb18030')

再次运行,终于成功!

总结

Python似乎对windows不太友好,同样的流程我在ubuntu上重复了一遍,安装什么的都很流畅顺利,一两分钟就搞定了,在windows上竟然折腾了整整一个下午!!!

你可能感兴趣的:(HTML,python,爬虫)