Scrapy爬取起点中文网小说信息 绝对领域cosplay
生活随笔
收集整理的這篇文章主要介紹了
Scrapy爬取起点中文网小说信息 绝对领域cosplay
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
scrapy基本指令
創(chuàng)建項目指令
scrapy startproject name創(chuàng)建爬蟲指令
scrapy genspider pcname XX.com啟動爬蟲指令
scrapy crawl pcname調(diào)試爬蟲指令
scrapy shell urlorscrapy shell加url response會自動下載下來url內(nèi)容,打開shell。
不加不下載,可以在其中用 fetch(url) 下載
Response類
屬性相關(guān)
- body 響應(yīng)的字節(jié)數(shù)據(jù)
- text 響應(yīng)之后的文本數(shù)據(jù)
- headers 響應(yīng)頭信息
- encoding 響應(yīng)數(shù)據(jù)的編碼字符集
- status 響應(yīng)的狀態(tài)碼
- url 請求的url
- request 請求的對象
- meta 元數(shù)據(jù),用于request與callback之間傳值
解析相關(guān)
- selector()
- css() 樣式選擇器,返回Selector選擇器的可迭代對象(列表)
- scrapy.selector.SelectorList
- x()/xpath()
- scrapy.selector.Selector
- css選擇器提取文本
` ::text 提取文本
:: attr(“屬性名”)提取屬性
- scrapy.selector.SelectorList
- xpath() xpath路徑
- 選擇器常用的方法
- css()/xpath()
- extract() 提取選擇中的所有內(nèi)容,返回是list
- extract_first()/get() 提取每個選擇器的內(nèi)容,返回是文本
實戰(zhàn)1:爬取起點中文網(wǎng)小說信息
代碼
import scrapy from scrapy.http import Request,Responseclass WanbenSpider(scrapy.Spider):name = 'wanben'allowed_domains = ['qidian.com','book.qidian.com']start_urls = ['https://www.qidian.com/finish']def parse(self, response):if response.status==200:lis=response.css('.all-img-list li')#selectorlisfor i in lis :items = {}# i對象類型是selector,注意selector沒有x()函數(shù)a=i.xpath('./div[1]/a')items['book_url']=a.xpath('./@href').get()items['book_cover']=a.xpath('./img/@src').get()items['book_name']=i.xpath('div[2]/h4//text()').get()items['author'],*items['tags']=i.css('.author a::text').extract()items['summary']=i.css('.intro::text').get()yield items# yield Request('https:'+items['book_url'],callback=self.parse_info,priority=1)next_url='https:'+response.css('.lbf-pagination-item-list').xpath('./li[last()]/a/@href').get()if next_url.find('page')!=-1:yield Request(next_url,priority=100)#優(yōu)先級越改,會優(yōu)先下載def parse_info(self,response:Response):# print("-----------------------解釋小說詳情界面")pass實戰(zhàn)2:爬取絕對領(lǐng)域cosplay一整頁套圖
代碼
import scrapy import requests import os from scrapy.http import Request,Response class JdlySpider(scrapy.Spider):name = 'jdly'allowed_domains = ['jder.net']start_urls = ['https://www.jder.net/cosplay']def parse(self, response):if response.status==200:lis=response.css(".post-module-thumb a")c=lis.xpath('./@href').extract()for i in c:yield Request(i,callback=self.get_img)# for j in range(2,10):# next_url='https://www.jder.net/cosplay/page/'+str(j)# yield Request(next_url) # 優(yōu)先級越改,會優(yōu)先下載def get_img(self,response:Response):if response.status == 200:list = response.css(".entry-content p")head=response.css(".entry-header h1::text").get()imgs=list.xpath("./img/@src").extract()# for i in imgs:# print(i)x=1path=r'F:\360MoveData\Users\ZMZ\Desktop\pachong\\'os.mkdir(path+head)path2=r'F:\360MoveData\Users\ZMZ\Desktop\pachong\\'+head+'\\'for url in imgs:file_name="圖片"+str(x)+".jpeg"q=requests.get(url)with open(path2+file_name,'wb') as f:f.write(q.content)print("成功爬取%d" % x)x+=1print("爬取結(jié)束")效果
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BwQHpFCS-1599897977481)(https://i.loli.net/2020/08/31/rm7ViMSesHzclk4.png)]
總結(jié)
以上是生活随笔為你收集整理的Scrapy爬取起点中文网小说信息 绝对领域cosplay的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七、文章管理页面及功能实现《iVX低代码
- 下一篇: 引入uni-app组件时报错:文件查找失