首先python的scrapy框架很好,功能强大,使用起来也很方便,省去了很多造轮子的时间。在学习的过程中也碰到了一些问题,在这里希望能分享与大家分享,做一个参考

1.安装(pip延时响应问题)

scrapy框架包含了很多包,理论上是通过pip install scrapy命令可直接安装。但实际上还是有很多的问题

问题1:

          在cmd直接输入pip install scrapy,可是网速会显示很慢,最后出现红字报错

          原因:这是网络连接的问题,pip命令会直接在python官网上下载包(官网的速度那就不敢恭维了)

          解决方法:输入 pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple [module name]

( 这个网站是清华的资源网)

               注:如果网速更慢的小伙伴的话,可以在再加上时间元素

                 形如:pip --default-timeout=10000 install  package(与上面的方法可以综合使用)

2.所需要的知识储备

  python基础知识(if while for 继承 迭代器 异常处理 文件操作之类(现用现学也不迟))

  xpath相关知识,知道如何再xml网页中定位element(https://www.bilibili.com/video/av48794288?from=search&seid=14753612886237754814

  css选择器相关知识(https://www.w3school.com.cn/css/index.asp

           https://blog.csdn.net/lynnpaul/article/details/79884677

  正则表达式(B站上全都有)

  《数据通信与网络 第四版》第27章 万维网与超文本传输协议(了解web运行的基本原理)

  掌握上面这些可以基本开始scrapy框架的学习了,后面的知识用到再说

  *系统性的学习很重要,很重要,很重要。百度只能当作辅助,最好是去看书。好东西都在书里

3.教训

    vscode一定要搭建好环境

      推荐阅读:https://www.cnblogs.com/asce/p/11600904.html

          (还有一篇文章找不到了,大意就是配置好 环境变量,怎么配置可以自己搜)

4.当scrapy shell出故障时,推荐使用jupyter notebook进行网页分析(刚接触python编程时也推荐使用)

  补充:通过后续的学习,发现jupyter进行网页分析存在很大一部分局限性。

     实际上很多网站经典反爬虫机制之一就是会检查User-Agent。当我们直接通过爬虫程序发送请求时,会被网站服务器拒绝(such as经典爬虫练习网站:豆瓣)

     所以很多时候还是推荐直接使用scrapy框架(已经进行过User-Agent伪装或者模拟)直接分析,比如直接打印所需要的信息来检查xpath语法或者相关解析路径的正确

      如何设置随机User-Agent可参考我的另一篇博文:https://www.cnblogs.com/RosemaryJie/p/12336662.html

        

  安装:通过pip命令安装,jupyter(模块名)(如何安装详细细节可百度)

  通过cmd,输入jupyter notebook打开(在cmd中那个文件夹目录下输入命令,文件(file)便储存在哪个文件夹)

    在jupyter中可通过创建selector对象分析网页(selector对象包含了xpath和css方法)

      from scrapy.selector import Selector

      from scrapy.http import HemlResponse

      import requests

      Response = requests . get("www.jer0.com")

      response = HtmlResponse ( url="www.jer0.com" , body = Response . text , encoding = ' utf-8' )

      selector = Selector(response = response)

          

学习scrapy爬虫框架的一些经验和教训的更多相关文章

  1. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  2. Scrapy 爬虫框架学习笔记(未完,持续更新)

    Scrapy 爬虫框架 Scrapy 是一个用 Python 写的 Crawler Framework .它使用 Twisted 这个异步网络库来处理网络通信. Scrapy 框架的主要架构 根据它官 ...

  3. Python之Scrapy爬虫框架安装及简单使用

    题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...

  4. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  5. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

  6. Scrapy爬虫框架中的两个流程

    下面对比了Scrapy爬虫框架中的两个流程—— ① Scrapy框架的基本运作流程:② Spider或其子类的几个方法的执行流程. 这两个流程是互相联系的,可对比学习. 1 ● Scrapy框架的基本 ...

  7. 安装scrapy 爬虫框架

    安装scrapy 爬虫框架 个人根据学习需要,在Windows搭建scrapy爬虫框架,搭建过程种遇到个别问题,共享出来作为记录. 1.安装python 2.7 1.1下载 下载地址 1.2配置环境变 ...

  8. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  9. Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...

随机推荐

  1. JMeter之BeanShell断言---equals使用

    判断变量是否为root if(!"${User}".equals("root")){ Failure=true; FailureMessage="ER ...

  2. iOS 编程:NSURLSession

    定义:描述 Foundation 框架类在标准的网络传输协议下,用 URLs 连接因特网并与服务器交互的一整套体系. 支持的传输协议: File Transfer Protocol (ftp://) ...

  3. MyBatis之ResultMap的association和collection标签(一)

    1.先说resultMap比较容易混淆的点, 2. Map结尾是映射,Type是类型  resultType 和restltMap restulyType: 1.对应的是java对象中的属性,大小写不 ...

  4. Kafka配置文件及解释

    broker.id=0num.network.threads=9num.io.threads=24socket.send.buffer.bytes=102400listeners=PLAINTEXT: ...

  5. Mac上各种实用命令

    下载Github资源:git clone 显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏隐藏文件:defa ...

  6. 设计模式详解及PHP实现:代理模式

    [目录] 代理模式(Proxy pattern) 代理模式是一种结构型模式,它可以为其他对象提供一种代理以控制对这个对象的访问. 主要角色 抽象主题角色(Subject):它的作用是统一接口.此角色定 ...

  7. AndroidStudio3.x中api、compile和implementation的区别

    首先在AndroidStudio3.x中compile已经过时 由implementation和api来代替 其次compile与api完全等同 3.x中可以完全将compile换成api mplem ...

  8. 图解Python网络编程

    返回目录 本篇索引 (1)基本原理 (2)socket模块 (3)select模块 (4)asyncore模块 (5)asynchat模块 (6)socketserver模块 (1)基本原理 本篇指的 ...

  9. 前阿里数据库专家总结的MySQL里的各种锁(下篇)

    在上篇中,我们介绍了MySQL中的全局锁和表锁. 今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题. 1.行锁基础 由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然 ...

  10. Python中max()内置函数使用(list)

    在学习完列表和元组的基础知识后,做到一个题: 求出列表中频次出现最多的元素. 学习到了python内置函数max的用法 其参数key的用法 匿名函数lamda的用法 python内置函数max() m ...