美文网首页
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