美文网首页
Python-Scrapy-学习笔记(一)

Python-Scrapy-学习笔记(一)

作者: 清新灬薄荷叶 | 来源:发表于2018-12-26 15:37 被阅读0次

概览

由于工作需要,以及之前的经验积累,决定尝试用scrapy爬虫框架爬取部分数据。
这是我第二次尝试学习scrapy框架,第一次学习无疾而终(那时候没有工作压力)。
该篇我命名为初窥门径

问题

1. 安装问题

直接使用pip安装scrapy模块是报错:Microsoft Visual C++ 14.0 is required
建议参考Microsoft Visual C++ 14.0 is required 的解决方案下载文件并安装即可
附:

  1. Microsoft 官网没有14.0的包,15.0的包下载了貌似没用
  2. 在安装了python3 和 Anaconda3的情况下, 请使用pip3 安装命令,直接使用pip安装的包是安装到Anaconda 环境里面了。(估计是跟路径的设置有关)
  3. 如果在网络受限的环境情况下,可以给pip使用代理下载,格式如下:
    pip3 install --proxy=http://127.0.0.1:8080 scrapy

2. 创建项目

在cmd中使用 scrapy startproject project_name时,我遇到了以下问题

  1. ImportError: No module named win32api
    建议参考:Scrapy运行ImportError: No module named win32api错误
    命令:pip install pypiwin32
  2. 在pip安装该模块时,总是会报另外一个错误:ReadTimeoutError
    建议参考:Windows下,pip安装时ReadTimeoutError解决办法
    命令:pip --default-timeout=100 install -U pypiwin32
  3. 然后会报错:No module named 'urllib2'
    这是因为scrapy的piplines.py里面使用了相应的包
    建议用requests模块重写这部分的逻辑
    代码:
    import requests
    response = requests.get(url)
  4. 因为网路问题,爬虫在爬取的时候,需要增加代理。
    建议参考:给Scrapy添加代理;关于这块的代理添加的文章大多都是这篇。。。
    我这边是直接在piplines.py里面直接更改爬取逻辑的:
    import requests
    proxies = {'http':'http://127.0.0.1:8080','https':'http://127.0.0.1:8080'}
    response = requests.get(url,proxies = proxies)
    虽然我也参考了方法二,中间件那个,但是对我这边没什么用。

参考

  1. Scrapy简单入门及;实例讲解
  2. Microsoft Visual C++ 14.0 is required 的解决方案
  3. Scrapy运行ImportError: No module named win32api错误
  4. Windows下,pip安装时ReadTimeoutError解决办法
  5. 给Scrapy添加代理

相关文章

网友评论

      本文标题:Python-Scrapy-学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/mtshlqtx.html