zoukankan      html  css  js  c++  java
  • 【爬虫】Scrapy笔记

    1.工程的创建 

    scrapy startproject hello

    创建文件

    scrapy genspider example example.com

    ===

    修改工程中 items的定义

    items的作用是定义网上爬取的数据,结构体类似于字典来保存数据

    例如

    class DoubanMovieItem(scrapy.Item):
    #申明自己要爬去的东西,创建了这样一个类
    # 排名
    ranking = scrapy.Field()
    # 电影名称
    movie_name = scrapy.Field()
    # 评分

     修改新创建的example.py文件
    1.要爬取的url
    2.调用 Request方法
    3.parse解析
      1.调用 response.xpath   #解析大模块
      2.for循环吧解析到的数组进行逐个重新解析,并把数据保存到item字节里
    xpath解析()
    如下链接
    这个写的的确好,保存成笔记了~
    https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154967
     
    还有一个网站,这个写的也行,可是就是感觉说的不是同一回事
    http://www.w3school.com.cn/xpath/xpath_functions.asp
     
    ======总之爬虫要写好,这个解析语法 F12要多运用运用=======
     写完之后运行就可以了
     
     其实还是抄别人的,有的时候会感叹,别人已经走那么远了,我们还追有用吗?
    其实不追,那才是放弃才是失败呀。要知道自己喜欢什么和擅长什么,互联网如此,技术如此,生活竞争就是如此。没有门槛那就不会有这么多的贫富差距了
    加油,你可以的~
    今天,爬虫可以自己跑了,而且还有了这么抓取元素,来爬虫,大概这个已经回50%了,剩下的
    1.各种反爬虫机制
    2.多实践,以及其他界面的爬虫操作技巧,界面跳转等
    3.数据分析,这么呈现好的数据报表
     
    代码放到。。。
    https://github.com/callmexuelin/DoubanScrapy
     
     

    ctrl+alt+t:添加try/catch   Pycharm添加异常处理机制的快捷键

    1.在所要爬取的网页后添加/robots.txt  

    e.g http://huaban.com/robots.txt   就可以查看该网站的 爬取信息 

    2.获取网站所有技术

    import  builtwith    

    builtwith.parse('http://huaban.com')   

    3.获取网站所有者信息

    import whois

    whois.whois(''http://huaban.com')

    xpath解析 我的错误编辑写法:

    //*[@id="content"]/div/div[1]/div[2]/span[3]/a

    './/div[@class="star"]/span/text()'

    .//div[@class="item"/pic]

    './/div[@class="pic"]/em/text()'

    .//div[@class="hd"]/a/span[class="title"]/test()
    .//div[@class="hd"]/a/span[1]/text()

    .//div[@class="star"]/span[3]/text()

    Scrapy 命令

    scrapy startproject myproject //创建Scrapy项目

    scrapy genspider douban_movie_top250 https://movie.douban.com/top250 //创建一个Scrapy python文件

    全局命令:
    startproject
    settings
    runspider
    shell
    fetch
    view
    version

    项目(Project-only)命令:
    crawl
    check
    list
    edit
    parse
    genspider
    deploy
    bench

    Spiders
    Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。

    spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取 start_urls 中的URL, 并以 parse 为回调函数生成 Request

    在运行 crawl 时添加 -a 可以传递Spider参数:
    scrapy crawl myspider -a category=electronics

    Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML文件中的某个部分。选择器

    //*[@id="content"]/div/div[1]/ol/li[1]/div/div[1]/em

  • 相关阅读:
    CentOS 下搭建Jenkins
    SRVE0255E: 尚未定义要处理 ***的 Web 组/虚拟主机。
    WebSphere Application Server中manageprofiles的使用
    WAS 与IHS集成问题
    CentOS ln 链接
    VIM常见命令
    虚拟机VM下CentOS7部署WASND9+HTTP9
    CentOS7下安装GUI图形界面
    CentOS 系统时间与硬件时间
    hive 排序和聚集
  • 原文地址:https://www.cnblogs.com/asreg/p/9520750.html
Copyright © 2011-2022 走看看