1. 程式人生 > 其它 >1、scrapy模組的簡單使用

1、scrapy模組的簡單使用

技術標籤:python的scrapy爬蟲python

scrapy模組

目錄


安裝scrapy

# 如果安裝了conda 直接使用
conda install scrapy
# 使用pip 安裝
pip install scrapy
# 安裝出錯
# 如果是Twisted安裝出錯,進入官網
https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
# 找到Twisted安裝包,下載下來之後使用 pip 安裝

image-20201206194733289

建立一個專案

  • 開啟一個cmd,進入安裝scrapy的環境

image-20201206195117896

  • 建立一個專案,例如爬取 https://www.bqkan.com/3_3012/ 筆趣看的小說 【武動乾坤】

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-V9rqIEim-1607504635236)(https://i.loli.net/2020/12/06/S4swDTGdjA5nLqP.png)]

  • 建立一個爬蟲

image-20201206195721562

  • 使用程式碼編輯器開啟專案(例如pycharm) 目錄結構如下

在這裡插入圖片描述

  • 新建立啟動檔案
    在這裡插入圖片描述
from scrapy import cmdline
cmdline.execute("scrapy crawl wu".split())
  • 修改wu.py檔案
import scrapy
from wudong.items import WudongItem

class WuSpider(scrapy.Spider):
    name = 'wu'
    allowed_domains = ['www.bqkan.com']
    start_urls = ['https://www.bqkan.com/3_3012/1331001.html'
] def parse(self, response): contents = response.css('div#content::text').getall() contents = [x.strip() for x in contents if x.strip() != ''] contents.pop() contents.pop() # 去除結尾多餘的字元 contents = "\n\t".join(contents).replace('[筆趣看\xa0\xa0www.biqukan.com]百度搜索“筆趣看小說網”手機閱讀:m.biqukan.com'
, '') title = response.css('h1::text').get() # 章節名 yield WudongItem(title=title, contents=contents) next_url = response.xpath('//a[contains(text(), "下一章")]/@href').get() if next_url: next_url = response.urljoin(next_url) yield scrapy.Request(url=next_url, callback=self.parse)
  • 修改items.py檔案
import scrapy
class WudongItem(scrapy.Item):
    title = scrapy.Field()
    contents = scrapy.Field()
  • 修改pipelines.py檔案
class WudongPipeline:
    def __init__(self):
        # 儲存為txt檔案
        self.f = open('武動乾坤.txt', 'w', encoding='utf-8')
    def process_item(self, item, spider):
        title = item['title']
        contents = item['contents']
        content = f'{title}\n\t{contents}'
        print(content, file=self.f, flush=True)  # 即使寫入
        # self.f.write(content)
        return item
    def close_spider(self, spider):
        self.f.close()
  • 執行 startwudong.py 檔案

正常會輸出如下結果
在這裡插入圖片描述
同時建立一個文字檔案
在這裡插入圖片描述

一個簡單的scrapy爬蟲結束