Python scrapyは起点の中国語のネットの小説のランキングを登ります
一、プロジェクトの需要
ランキング小説の作者、書名、分類及び連載
二、プロジェクト分析
ターゲットurl:「https://www.qidian.com/rank/hotsales?style=1&page=1」
コンソール検索で静的なページに該当する情報が存在することが分かりましたので、今回は爬虫類の難易度が低いです。
コンソールで観察して、必要な内容はすべて1つのliリストの中にあり、各リストは1冊の本の内容を表しています。
liの中で必要な内容を見つけます。
二ページ目のurlを見つけました。
「https://www.qidian.com/rank/hotsales?style=1&page=1」
「https://www.qidian.com/rank/hotsales?style=1&page=2」
ページ数の変化を見つけました。
scrapyプログラムの作成を開始します。
三、プログラム作成
プロジェクトを作るのは簡単すぎて、言いません。
1.item(データストア)の作成
爬虫類プロジェクトフォルダの下でstart.pyを作成します。
hot.csv
締め括りをつける
今回の爬虫類の内容はまだとても簡単です。spiderとitemしか使わないので、ほとんどのscrapyで呼び出さなければならないファイルです。後期にはmiddlewarse.py、pipeline s.py、setting.pyは編纂と配置が必要です。また、javascriptとjsonからデータを抽出するのが難しいです。
ここでPython scrapyが起点となる中国語ネット小説ランキングの記事を紹介します。Pythonが起点となる中国語ネットの内容については、以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。
ランキング小説の作者、書名、分類及び連載
二、プロジェクト分析
ターゲットurl:「https://www.qidian.com/rank/hotsales?style=1&page=1」
コンソール検索で静的なページに該当する情報が存在することが分かりましたので、今回は爬虫類の難易度が低いです。
コンソールで観察して、必要な内容はすべて1つのliリストの中にあり、各リストは1冊の本の内容を表しています。
liの中で必要な内容を見つけます。
二ページ目のurlを見つけました。
「https://www.qidian.com/rank/hotsales?style=1&page=1」
「https://www.qidian.com/rank/hotsales?style=1&page=2」
ページ数の変化を見つけました。
scrapyプログラムの作成を開始します。
三、プログラム作成
プロジェクトを作るのは簡単すぎて、言いません。
1.item(データストア)の作成
import scrapy
class QidianHotItem(scrapy.Item):
name = scrapy.Field() #
author = scrapy.Field() #
type = scrapy.Field() #
form= scrapy.Field() #
2.spider(データキャプチャ(コアコード)の作成)
#coding:utf-8
from scrapy import Request
from scrapy.spiders import Spider
from ..items import QidianHotItem
#
class HotSalesSpider(Spider):# spider
name = "hot" #
qidian_header={"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"} # header
current_page = 1 #
def start_requests(self): #
url="https://www.qidian.com/rank/hotsales?style=1&page=1"
yield Request(url,headers=self.qidian_header,callback=self.hot_parse)
#Request
#url: url
#header: ( )
#callback: ( parse)
def hot_parse(self, response):#
#xpath
list_selector=response.xpath("//div[@class='book-mid-info']")
#
for one_selector in list_selector:
#
name=one_selector.xpath("h4/a/text()").extract()[0]
#
author=one_selector.xpath("p[1]/a[1]/text()").extract()[0]
#
type=one_selector.xpath("p[1]/a[2]/text()").extract()[0]
#
form=one_selector.xpath("p[1]/span/text()").extract()[0]
item = QidianHotItem()
# ,
item['name'] = name
item['author'] = author
item['type'] = type
item['form'] = form
yield item #
# URL, request
self.current_page += 1
if self.current_page <= 10:# 10
next_url = "https://www.qidian.com/rank/hotsales?style=1&page="+str(self.current_page)
yield Request(url=next_url,headers=self.qidian_header,callback=self.hot_parse)
def css_parse(self,response):
#css
list_selector = response.css("[class='book-mid-info']")
for one_selector in list_selector:
#
name = one_selector.css("h4>a::text").extract()[0]
#
author = one_selector.css(".author a::text").extract()[0]
#
type = one_selector.css(".author a::text").extract()[1]
#
form = one_selector.css(".author span::text").extract()[0]
#
item=QidianHotItem()
item['name']=name
item['author'] = author
item['type'] = type
item['form'] = form
yield item
3.start.py(コマンドラインの代わりに)爬虫類プロジェクトフォルダの下でstart.pyを作成します。
from scrapy import cmdline
# cmd
cmdline.execute("scrapy crawl hot -o hot.csv" .split())
# csv
似たような過程が現れたら登りの成功を表します。hot.csv
締め括りをつける
今回の爬虫類の内容はまだとても簡単です。spiderとitemしか使わないので、ほとんどのscrapyで呼び出さなければならないファイルです。後期にはmiddlewarse.py、pipeline s.py、setting.pyは編纂と配置が必要です。また、javascriptとjsonからデータを抽出するのが難しいです。
ここでPython scrapyが起点となる中国語ネット小説ランキングの記事を紹介します。Pythonが起点となる中国語ネットの内容については、以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。