输入关键字 抓取所有网页(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上重复了同样的过程。安装顺利,顺利,一两分钟就搞定了。折腾窗户花了整整一个下午!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线