關于 scrapy 基礎操作

  • pip 換源
    國外的源實在是太慢了

    在終端進入目錄:cd~/.pip (如果沒有.pip 文件夾,那么就要自己創建)
    編輯 pip.conf 文件 (同上)

    寫入阿里云鏡像

    [global]
    
    index-url = http://mirrors.aliyun.com/pypi/simple/
    
    [install]
    
    trusted-host=mirrors.aliyun.com
    

    或者寫入豆瓣鏡像

    [global]
    
    index-url = http://pypi.douban.com/simple
    
    [install]
    
    trusted-host=pypi.douban.com
    
  • pip 安裝 scrapy

    pip install scrapy
    
  • spider 模板

    import scrapy
    
    class Spider(scrapy.spider.Spider):
        name = "spider"    #唯一標識,啟動spider時即指定該名稱
        allowed_domains = ["www.baidu.com"]
        start_urls = [
            "http://www.baidu.com
        ]
    
        def parse(self, response):
            with open(filename, 'wb') as f:
                f.write(response.body)
    
  • spider 啟動

    scrapy crawl spider
    
  • xPath 語法

    選取節點

表達式 描述
node 選取此節點的所有子節點
/ 從根節點選取
// 從匹配選擇的當前節點選擇文檔中的節點,而不考慮他們的位置
. 選取當前節點
.. 選擇當前節點的父節點
@ 選取屬性

謂語

表達式 描述
/node/td[1] 選取 node 下面的第一個 td 元素
/node/td[last()] 選取 node 下面的最后一個 td 元素
/node/td[last()-1] 選取 node 下面的倒數第二個 td 元素
/node/td[position()<3] 選取 node 下面的前兩個 td 元素
//node[@attr] 選取所有擁有名為 attr 的屬性的 node 元素
//node[@attr='value'] 選取所有擁有名為 attr 且值為 value 的屬性的 node 元素
/node/td[size>10] 選取 node 下面所有 size 屬性值大于10的 td 元素
/node/td[size>10]/span 選取 node 下面所有 size 屬性值大于10的 td 元素下面的 span 元素

未知節點

表達式 描述
* 匹配任何元素節點
@* 匹配任何屬性節點
node() 匹配任何類型節點
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容