输入关键字 抓取所有网页(Python和Scrapy爬虫配置Scrapy是用Python开发的库可供使用)
优采云 发布时间: 2022-03-27 15:00输入关键字 抓取所有网页(Python和Scrapy爬虫配置Scrapy是用Python开发的库可供使用)
由于项目需要,最近开始学习和使用Python编写网络爬虫。了解网络爬虫最好的例子是最常用的搜索引擎,网络爬虫是搜索引擎中最重要的部分。搜索引擎根据用户输入的关键词,利用一定的网页分析算法,过滤掉与主题无关的链接,保留有用的链接,放入待抓取的URL队列中,最后呈现给用户。
在实际项目中,我们往往不需要爬取所有网站的源码,而只对感兴趣的一个或几个网站进行定向爬取,爬取的内容不仅仅是URL ,但根据具体项目需要。
项目背景
根据用户关键词抓取等6个文献搜索引擎的检索结果,记录文献标题、作者、时间、email和URL等信息,使用Windows桌面软件将与检索关键词匹配的项目以表格形式呈现的一个列表。
方案选择
根据背景描述,至少有两种方案:
API,如果网站为用户提供了一个开放的API,那么事情就简单多了,网络爬虫可以根据用户的关键词调用相应的API,获取数据库中文档的相关信息。如果网站没有提供API,那么想要的信息只能通过爬虫的方式获取。
由于网站这6个target都没有提供对应的API,我们只好硬着头皮选择了方案二。根据需求,可以发现该项目涉及爬虫和windows GUI两种技术。虽然C/C++、Java、Python、Ruby等都可以写爬虫,但从开发周期和开发成本来看,Python拥有Scrapy等强大的网络爬虫库,自然是首选。Windows GUI 的可选空间并没有那么大。MFC和Qt是最经典的。其中,PyQt是Python版本的Qt库。最适合结合 Python 编写 GUI 程序。从跨平台的角度来看,Python+PyQt 也成为了最好的组合,虽然在性能上可能会有一些牺牲。
Python 和 Scrapy 爬虫配置
Scrapy 是一个用 Python 开发的快速、高级的屏幕抓取和网页抓取框架,用于抓取网站并从页面中提取结构化数据。Scrapy 用途广泛,可用于数据挖掘、监控和自动化测试。
蟒蛇安装
我最初在我的机器上安装了 python 3.4,但它无法安装scrapy。发现scrapy现在只支持python 2,所以我卸载了python3.4,安装了python2.7.6。
点安装
下载 get_pip.py 并运行
python get_pip.py
将 pip 和 setuptools 安装到 X:/Program Files/Python 2.7.6/script。
爬虫安装
要使用 pip 安装 scrapy,请运行
pip install scrapy
我收到以下错误:
原因:没有安装python 2.7的编译器
解决方案:下载 Micorsoft Visual C++ Compiler for Python 2.7 并安装
再次运行 pip install scrapy,我收到以下错误:
原因:xml库没有安装
解决方法:使用easy_install安装xmk库
esay_install lxml
再次安装pip install scrapy,终于成功了!
运行scrapy
按照Scrapy入门教程编写爬虫并按照教程运行
scrapy crawl dmoz
错误:
问题:缺少win32
解决方法:下载安装pywin32
再次运行scrapy crawl dmoz
错误:
问题:这是 python2 mimetype 的错误
解决方案:在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上重复了同样的过程。安装顺利,顺利,一两分钟就搞定了。折腾窗户花了整整一个下午!!!