日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scrapy抓取起点中文网排行榜

發布時間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scrapy抓取起点中文网排行榜 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目名稱:qidian

項目描述:利用scrapy抓取七點中文網的“完本榜”總榜的500本小說,抓取內容包括:小說名稱,作者,類別,然后保存為CSV文件

目標URL:https://www.qidian.com/rank/fin?style=1

項目需求:

  1.小說名稱

  2.作者

  3.小說類別

第一步:在shell中創建項目

scrapy startproject qidian

第二步:根據項目需求編輯items.py

1 #-*- coding: utf-8 -*- 2 import scrapy 3 4 class QidianItem(scrapy.Item): 5 name = scrapy.Field() 6 author = scrapy.Field() 7 category = scrapy.Field()

第三步:進行頁面分析,利用xpath或者css提取數據,創建并編輯spider.py

1 # -*- coding: utf-8 -*- 2 import scrapy 3 from ..items import QidianItem 4 5 class QidianSpider(scrapy.Spider): 6 name = 'qidian' 7 start_urls = ['https://www.qidian.com/rank/fin?style=1&dateType=3'] 8 9 def parse(self, response): 10 sel = response.xpath('//div[@class="book-mid-info"]') 11 for i in sel: 12 name = i.xpath('./h4/a/text()').extract_first() 13 author = i.xpath('./p[@class="author"]/a[1]/text()').extract_first() 14 category = i.xpath('./p[@class="author"]/a[last()]/text()').extract_first() 15 item = QidianItem() 16 item['name'] = name 17 item['author'] = author 18 item['category'] = category 19 yield item

  上面這里是一頁的數據,接下來抓取一下頁的連接(因為項目過于小巧,我認為沒必要用到一些高大上的方法來實現,直接觀察URL的構造規律就可以簡單寫出代碼),下面是spider.py的完整代碼

1 # -*- coding: utf-8 -*- 2 import scrapy 3 from ..items import QidianItem 4 5 class QidianSpider(scrapy.Spider): 6 name = 'qidian' 7 start_urls = ['https://www.qidian.com/rank/fin?style=1&dateType=3'] 8 n = 1 #第一頁 9 10 def parse(self, response): 11 sel = response.xpath('//div[@class="book-mid-info"]') 12 for i in sel: 13 name = i.xpath('./h4/a/text()').extract_first() 14 author = i.xpath('./p[@class="author"]/a[1]/text()').extract_first() 15 category = i.xpath('./p[@class="author"]/a[last()]/text()').extract_first() 16 item = QidianItem() 17 item['name'] = name 18 item['author'] = author 19 item['category'] = category 20 yield item
21
22 if self.n < 25: 23 self.n += 1 #n表示頁碼 24 next_url = 'https://www.qidian.com/rank/fin?style=1&dateType=3&page=%d' % self.n 25 yield scrapy.Request(next_url, callback = parse)

第四步:啟動爬蟲并保存數據

scrapy crawl qidian -o qidian.csv

  

轉載于:https://www.cnblogs.com/Alfred-ou/p/9326296.html

總結

以上是生活随笔為你收集整理的Scrapy抓取起点中文网排行榜的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。