zoukankan      html  css  js  c++  java
  • 2019.04.23 Scrapy框架

    1.环境搭建

    2.选择需要的.whl文件下载,一般选择最后的,感觉意思是最近更新的包,以下是.whl文件下载链接地址:

    http://www.lfd.uci.edu/~gohlke/pythonlibs/

    1.python:表示包文件。

    2.whl 格式:这是一个压缩包,在其中包含了py文件,以及经过编译的pyd文件。

    这个格式可以使文件在不具备编译环境的情况下,选择合适自己的python环境进行安装。

     

    安装方法如下

    进入命令行输入:pip install xxxx.whl

    升级方法如下

    进入命令行输入:pip install -U xxxx.whl

    因为这个Scarpy是依赖这个Twised这个的  所以可以安装这个whl  文件  Scarpy依赖环境

    E:DevelopScripts  这个目录下  cmd  pip install 安装      

    还有一种方法是安装  visualcppbuildtools_full   不过这个安装可能有点久

    pip install scrapy

    然后找到相应的 whl  Twised.whl  安装就好了   去到对应的路径安装

    2.基本使用

    因为不同于Django,flask  新建项目有选择的  所以我们只能通过命令来创建

    scrapy startproject first-scrapy

    创建一个爬虫   scrapy genspider 爬虫名 爬虫的地址  baidu  baidu.com

    • name: 它定义了蜘蛛的唯一名称

    • allowed_domains: 它包含了蜘蛛抓取的基本URL;(只认定这个域名)

    • start-urls: 蜘蛛开始爬行的URL列表;

    • parse(): 这是提取并解析刮下数据的方法;

    运行爬虫  scrapy crawl 爬虫名 

    3.数据提取

    第一步一定要记得修改User-Agent

    不加这个  .extract返回一个unicode字符创      Selector返回的是选择器  为什么会返回的是选择器呢?这样还可以继续Xpath筛选

    利用框架如何快速的爬取资料:先创建scrapy项目    设置请求头User-Agent  设置url

    利用Scrapy自带的Xpath选择器筛选  输出即可  这是最简单的  输出到控制台

    既然可以输出到控制台那么其实保存都文件也容易

    json.cn

    .csv  是一种表格的形式  可以用excel打开

    在哪了提取这些数据  在response啊   可以直接

    scrapy crawl zhongheng -o book.json

    4.如何推送到 pipeline 

    通过yield  

    然后item接受   

    打印item  但是和在spider中的输入输出不一样呀  并没有打印这个item 没有白色的日志

    在setting中打开ITEM_PIPELINES  他是一个字典,前面是item_pipeline路径,数字表示优先级

    “w”会覆盖以前的信息  “a”会追加

    有一个问题是:文件会重复开启 如何让文件只开启一次呢

    这就是利用pipeline保存我们数据的问题

    在item模板中 无论什么数据类型

    都可以用 scrapy fielter

    这回推送的Item中的类对象 还是通过yield推送  所以还要记得转字典,也要记得转字符串

    6.Scrapy 的细节

    可以爬取 不同的网页,不同类型的网页,只需要写一个spider就好了。

    但是我要怎么处理筛选呢? 通过response的url来判断  这是广度爬取

    还有一个深度  一种爬虫方式。就是先遍历完左边的再慢慢的推到右边

    小说练习

    1.第一种找url规律的方法  看是否递增啥的

    2.将所有的url都拿出来  挨个去访问

    有一个叫文件流的东西,就是当只有内存的满了才会存到文件中

    那怎么让它实时的存储呢  那就要用flush了

    访问的间隔 download_delay = 3

    第一部分完了

      大概的知道这个框架的运行流程了,也知道怎么用xpath了也可以连续的

    爬取了,如何推送,如何的保存这些数据。这应该是小的一部分吧

    在继承与CrawlSpider中  restrict  提取到那个标签就可以了

    创建新的spider  用 -t  crawl  选择使用这个模板  

    copy  xpath  这么使用吗

     

  • 相关阅读:
    Zabbix的前台SQL注射漏洞利用
    LeetCode OJ--Permutation Sequence *
    LeetCode OJ--Next Permutation *
    LeetCode OJ--Permutations II
    LeetCode OJ--Permutations *
    小算法-计算下一个排列
    LeetCode OJ--Gas Station**
    LeetCode OJ--Insert Interval **
    LeetCode OJ--Search Insert Position
    Ruby自动化测试(操作符的坑)
  • 原文地址:https://www.cnblogs.com/Py-king/p/10755816.html
Copyright © 2011-2022 走看看