From be9c61e47e35d951e3cb6bd0bf1f7babfd25f48b Mon Sep 17 00:00:00 2001
From: LIU-HONGYANG <1664698982@qq.com>
Date: Sat, 22 Feb 2020 15:40:45 +0800
Subject: [PATCH] =?UTF-8?q?scrapy=E7=88=AC=E8=99=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 +
tutorial/.idea/misc.xml | 4 +
tutorial/.idea/modules.xml | 8 +
tutorial/.idea/tutorial.iml | 11 +
tutorial/.idea/workspace.xml | 368 ++++++++++++++++++
tutorial/scrapy.cfg | 11 +
tutorial/start.py | 3 +
tutorial/tutorial/__init__.py | 0
.../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 143 bytes
.../tutorial/__pycache__/items.cpython-37.pyc | Bin 0 -> 372 bytes
.../__pycache__/pipelines.cpython-37.pyc | Bin 0 -> 1076 bytes
.../__pycache__/settings.cpython-37.pyc | Bin 0 -> 595 bytes
tutorial/tutorial/items.py | 15 +
tutorial/tutorial/middlewares.py | 103 +++++
tutorial/tutorial/pipelines.py | 26 ++
tutorial/tutorial/settings.py | 92 +++++
tutorial/tutorial/spiders/__init__.py | 4 +
.../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 151 bytes
.../tutorial_spider.cpython-37.pyc | Bin 0 -> 1006 bytes
tutorial/tutorial/spiders/tutorial_spider.py | 26 ++
tutorial/xiaoshuo.json | 4 +
21 files changed, 679 insertions(+)
create mode 100644 tutorial/.idea/misc.xml
create mode 100644 tutorial/.idea/modules.xml
create mode 100644 tutorial/.idea/tutorial.iml
create mode 100644 tutorial/.idea/workspace.xml
create mode 100644 tutorial/scrapy.cfg
create mode 100644 tutorial/start.py
create mode 100644 tutorial/tutorial/__init__.py
create mode 100644 tutorial/tutorial/__pycache__/__init__.cpython-37.pyc
create mode 100644 tutorial/tutorial/__pycache__/items.cpython-37.pyc
create mode 100644 tutorial/tutorial/__pycache__/pipelines.cpython-37.pyc
create mode 100644 tutorial/tutorial/__pycache__/settings.cpython-37.pyc
create mode 100644 tutorial/tutorial/items.py
create mode 100644 tutorial/tutorial/middlewares.py
create mode 100644 tutorial/tutorial/pipelines.py
create mode 100644 tutorial/tutorial/settings.py
create mode 100644 tutorial/tutorial/spiders/__init__.py
create mode 100644 tutorial/tutorial/spiders/__pycache__/__init__.cpython-37.pyc
create mode 100644 tutorial/tutorial/spiders/__pycache__/tutorial_spider.cpython-37.pyc
create mode 100644 tutorial/tutorial/spiders/tutorial_spider.py
create mode 100644 tutorial/xiaoshuo.json
diff --git a/README.md b/README.md
index 32d5561..0dc2c53 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,10 @@ I will upload my python project into the repository.Hopefully, this way will hel
+tutorial:
+
+scrapy爬虫技术[网站](https://www.bilibili.com/video/av57909837?p=5)
+
## Website:
diff --git a/tutorial/.idea/misc.xml b/tutorial/.idea/misc.xml
new file mode 100644
index 0000000..26abc6b
--- /dev/null
+++ b/tutorial/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tutorial/.idea/modules.xml b/tutorial/.idea/modules.xml
new file mode 100644
index 0000000..9898cb6
--- /dev/null
+++ b/tutorial/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tutorial/.idea/tutorial.iml b/tutorial/.idea/tutorial.iml
new file mode 100644
index 0000000..c47ecaa
--- /dev/null
+++ b/tutorial/.idea/tutorial.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tutorial/.idea/workspace.xml b/tutorial/.idea/workspace.xml
new file mode 100644
index 0000000..4a557b7
--- /dev/null
+++ b/tutorial/.idea/workspace.xml
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+ item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1582270982111
+
+
+ 1582270982111
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tutorial/scrapy.cfg b/tutorial/scrapy.cfg
new file mode 100644
index 0000000..d79f6f1
--- /dev/null
+++ b/tutorial/scrapy.cfg
@@ -0,0 +1,11 @@
+# Automatically created by: scrapy startproject
+#
+# For more information about the [deploy] section see:
+# https://scrapyd.readthedocs.io/en/latest/deploy.html
+
+[settings]
+default = tutorial.settings
+
+[deploy]
+#url = http://localhost:6800/
+project = tutorial
diff --git a/tutorial/start.py b/tutorial/start.py
new file mode 100644
index 0000000..9ff995f
--- /dev/null
+++ b/tutorial/start.py
@@ -0,0 +1,3 @@
+from scrapy import cmdline
+
+cmdline.execute("scrapy crawl tutorial_spider".split())
\ No newline at end of file
diff --git a/tutorial/tutorial/__init__.py b/tutorial/tutorial/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tutorial/tutorial/__pycache__/__init__.cpython-37.pyc b/tutorial/tutorial/__pycache__/__init__.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..74a4f23860740dcb5ec75a1fbe9509dea2d2de17
GIT binary patch
literal 143
zcmZ?b<>g`kg4r$paUl9Jh=2h`Aj1KOi&=m~3PUi1CZpdyU!Y%7T9RLsnV5rM#K&jmWtPOp>lIYq;;_lhPbtkwwF8;>
H8HgDGv~(ij
literal 0
HcmV?d00001
diff --git a/tutorial/tutorial/__pycache__/items.cpython-37.pyc b/tutorial/tutorial/__pycache__/items.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2f020db807e78fb97e8b104bdea8bb3c65657b9a
GIT binary patch
literal 372
zcmYLFy-ve05I)CgYnAp55PKFfu_06;1Y)U>N|y{+A+}1W69?NFGQ)$w$iuKPd1c}i
znDC{kdeVLV?*Go0^Z68le1F|NtO&pl8heQYSp>Bw0R#x5AcGqak)UrNsDx+oO0!6i
z6(sR*$bn^nxR)r9MNoSjKte_YWRaxr@dsq1;T`wYk)PeSPMb1Uw@y~eWa1g;bzVu%
z{gm@ci&i0@asJZgYKV+&Ve+Q)qw7*C;n}0sTMYS0p=&2=_X!5i>*4P#U0Z2vs>=3B
z*PAY{H|dqMTc?}U4bu;#413tqrZafO5nh4c!6+lWC!uB>Y#-ykz2`7#$FRn;^WEwf
K3_D;eM*jiC9a-rB
literal 0
HcmV?d00001
diff --git a/tutorial/tutorial/__pycache__/pipelines.cpython-37.pyc b/tutorial/tutorial/__pycache__/pipelines.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..32c76bb318ec2b381386860e6907e59ba55742a8
GIT binary patch
literal 1076
zcmaJ=&ubGw6rP!#O}1&GrTBwFy$TE3Tq}r(O1*`G?Ij0?xHD}hZg$t1U1~!Fr9BAJ
zlP3?No<#KQ#r_Tc0dtjFJ$d)!d%Fq71{|38Ufz83@_ldK-fFcP1lH%T>-YPNkZ<^7
zvN!}cVcTUel1LhpF1br2limT5o}&9+mq~h$g#0HUNGC!&Sx~LIeFXwVx>OQGOLjoI
zp7bOK&!sPG;C)$_0r;AngK7=8uu6Z4D#Hnc2GLXW%D)`S4H?NbW92TiO~oQ2%U^G`oseLOyTdi?&yucK!`+s}+n@{pN2
z9J`v$v{a@PQJFbR&!bLJot=S1MT-rWXJ}0UBM*?ca1wBr%q~NalRnMa2-sow57`sw
zecyY_NAR*2$vfaYD(9lJ1_YZbv4v5hXCtj0ZG^t#<)iqr7-ZIQsiWM~pse$Ejm}lb
zD=i%2fx%96=P(p_>$I|FX3|JmD-f{=Sc{biU1SSvcxgu7H2R;Z`fulvL)H0{FE78p
zeiKrIj|&c)K0_&rQ>(_^UIM^m2xjR_BRgRoXD8_mln|~V#2}SLjB!(lM@28LP7Hpr
zriJD_nhR)fW~U6kxj{u3SUe0^-~~LWm)X!W3y^cQ^g&-i?-4n5yDV0YO>n*9a06wQ
HDgyQgA{PW@
literal 0
HcmV?d00001
diff --git a/tutorial/tutorial/__pycache__/settings.cpython-37.pyc b/tutorial/tutorial/__pycache__/settings.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..11d55a8ff27528f47801333ddff69a468c70c16f
GIT binary patch
literal 595
zcmZ9KO>f#T7{`;4Qi@jA%QWp~X_to41cYd*y0I>Ozp@
zNl1=lPe!t*AjK=85>n9~Dt|6{D%wXCB71x2z>&17SK&*ZWF(;Z(az~CB?xEiGJnPK
ziW@V&pp76+DG38klGs>n$g|b|bU`mZy=dy^jk;04cilq4alW>boKPAV9lZ&T?I0vE
zPuT1NSTV;G2mnS7xCO1I-|F~n4VdC6e1kt+6K-_cXL|b-9A96#_MibMnPc!4hx0@O
zZ)RDtz(%*JH}&>;_e^iKPJt7A3^KA^rj?4a8HPCJ`NQA+$smZMWf0-KI%POJF(VxF
z{OO;{Q<7pzV$5`RdoANFAq`oQhFZC(^hT~fG;LVaoUzr16W<>7rvvB|M?-k?4=QSt
zk(lkcx2`|x!MoydA6}Z%f$LA;yD4;B{|cI72dAi6F0}ozHHHIg2%WD|b|4<|UVe6s
zO{&bGWI0RXXe}x*`k2jmk{Y|j{~CrlCvn8|bX`=QFA}t*_@($R5~~SOm9nhvtB({}
Iktg`kg4r$paSMU;V-N=h7=a82ATDMB5-AM944RC7D;bJF!U*D*gMMgnYEiL%
zPG)IFeqMTIVqUtwOKNd;Nq&KTNoh%bQD$Nef>B(MnF3NBAD@|*SrQ+wS5SG2!zMRB
Pr8Fni4rKCYAZ7pnN}MLM
literal 0
HcmV?d00001
diff --git a/tutorial/tutorial/spiders/__pycache__/tutorial_spider.cpython-37.pyc b/tutorial/tutorial/spiders/__pycache__/tutorial_spider.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0e2456fa634a4216149514e424bfd6ae15a20745
GIT binary patch
literal 1006
zcmZuwOKTKC5bo}I?67PeiU$=u2tr(t8PLR4F%l#Yy)0rh!blv(?auBb^GbKGn=HF0
zbM-$YC-Kkt1N!R8zu?KL*%_0A4OLT*?s|Mx^KxmaP2gld-+cOR5%LR_=GY)?0jbBp
zIN>xUA%0m(GZr$6vXxqy9om%a5N>nljBrPgL+7g%x}5HkuKOF_l75$(&MTdzZ-pw0
zTnW_QjddZDIDM@}Ho#lWVIXV)se8Z#2`MKb<21B58`99OxWg@OpApF7U>0+uiMCrN
zT*w6vS9F~tQk8l7V5D`ao&~{VGV!MqKK2Ji7JM#>qu}Aj`lF4Y*Xyl6={@yFQ0xE;
z!P5eAfUrt+0BlCj0gekgXD53zwoUf?b8BXSja|@ldO_wkx6awj2F*gP@}Y)4C>?xG
z?Q^s}vu6%>zOlJGbN2`($EzOzT5PL7y%_{N`SNiq;hSp{8JDGyYx`)L-t}wOAdQvU
zT*D^vI1}Iwv^dfCyM|2fG?(!Gpvbkz_2q>wGhXw|v}$+PG0sUD>ydGXLdR)p?873-
zjia4{(
literal 0
HcmV?d00001
diff --git a/tutorial/tutorial/spiders/tutorial_spider.py b/tutorial/tutorial/spiders/tutorial_spider.py
new file mode 100644
index 0000000..0910f07
--- /dev/null
+++ b/tutorial/tutorial/spiders/tutorial_spider.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+import scrapy
+# https://www.zwdu.com/book/25435/7774888.html
+from scrapy.http.response.html import HtmlResponse
+from tutorial.items import TutorialItem
+
+class TutorialSpiderSpider(scrapy.Spider):
+ name = 'tutorial_spider'
+ allowed_domains = ['https://www.zwdu.com/book/25435/7774879.html']
+ start_urls = ['https://www.zwdu.com/book/25435/7774879.html']
+
+ def parse(self, response):
+ wrappers = response.xpath("//div[@id='wrapper']/div");
+ for wrapper in wrappers:
+
+ bookname = wrapper.xpath(".//div[@class='bookname']//text()").getall();
+ bookname = "".join(bookname).strip();
+
+
+ content = wrapper.xpath(".//div[@id='content']//text()").getall();
+ content = "".join(content).strip();
+
+ item = TutorialItem(bookname=bookname,content=content)
+
+ # xiaoshuo = {"bookname":bookname,"content":content}
+ yield item
diff --git a/tutorial/xiaoshuo.json b/tutorial/xiaoshuo.json
new file mode 100644
index 0000000..70cb46d
--- /dev/null
+++ b/tutorial/xiaoshuo.json
@@ -0,0 +1,4 @@
+{"bookname": "", "content": ""}
+{"bookname": "", "content": ""}
+{"bookname": "第一章 战神重生\r\n\t\t\t\t\r\n\t\t\t\t\t上一章 ← 章节列表 → 下一章 加入书签\r\n\t\t\t\t\r\n\t\t\t\t推荐阅读:铁血女兵气动乾坤至尊兵王魔君蛇妻:爱妃,别闹至尊少年王无敌剑域极品古医传人超级医生贫道有礼仙家有田", "content": "“没想到,我聂天居然重生了!”房间之中,聂天身躯剧烈颤抖,眼神之中充斥着压抑的愤怒。八一中文 W≤W≈W=.≈8≠1≥Z≥W≈.≤C≥OM 他的心中,惊涛骇浪,过往种种在脑海之中飞驰而过。 聂天本是天界第一战神,晨昏神域大半疆域都是他一手打下。 赫赫威名,震慑神域! 为了封赏他的绝世战功,晨昏大帝将掌上明珠紫烟公主许配于他。 洛紫烟,晨昏神域第一美女,风采绝世,倾国倾城。 配上聂天这天界第一战神,堪称天造地设。 但聂天怎么也想不到,洛紫烟竟会在洞房之夜对他出手。 堂堂天界第一战神,竟死在未婚妻的手上,还死在了洞房之夜,真是天大的笑话! “她为何杀我?难道传言是真的?晨昏大帝将洛紫烟许配于我,本来就是一个阴谋,就是为了要杀我。”聂天眼神凌冽,心中惊涛骇浪。 功高震主,历来都是臣子大忌。 聂天声望在晨昏神域,远胜晨昏大帝,后者想杀他,亦在情理之中。 “好一个晨昏大帝,好一个洛紫烟,你们父女好狠的心!我聂天为晨昏神域打下大片疆土,更视洛紫烟为毕生挚爱,没想到最后竟死在你们父女手上。”聂天双目赤红,全身颤抖。 良久,聂天稍稍镇定,眼中闪现一抹精芒,突然狂笑一声:“也罢!既然上苍让我聂天重生一回,我聂天再不做别人的殿下之臣。” “这一世,我要创造我的世界!” “这一世,我要成为万古天帝!” “这一世,我要主宰天界神域!” 豪言壮语,振聋聩,聂天整个人锋芒毕露,好似一把出鞘利剑! 重生一次,聂天信心满满,但当他看到自己的这副身躯,却是苦笑一声,自嘲道:“现在的这副身体,实在弱了一些。” 死在洛紫烟手中,聂天再次醒来,已是百年之后。 他的灵魂重生在已经病死的少年身上。巧合的是,这个少年也叫聂天。 此时的聂天,乃是墨阳城三大家族之一聂家的家主。 但是他这个家主,在家族之中却连一个体面的下人都不如。 就连他死在房间,都没人知道。 究其原因,就是因为他是一个元脉尽毁的废人。 三年前,聂天还是墨阳城第一天才,年仅十三岁,实力达到元脉九重,堪称妖孽。 但是三年前的一天,聂天和父亲及多位族人进入裂云山脉,进行历练,却遭遇一群黑衣人的伏击,结果父亲和族人全部被杀,只有聂天一人拼死逃出,但却元脉尽毁,成了废人。 父亲死后,他继任家主。但是在所有人眼中,他这个家主,屁都不是。 元脉尽毁,聂天开始自暴自弃,自甘堕落,每天借酒消愁,流连风月之地。 就在昨天,他被墨阳城三大家族之一巴家的大少爷巴子阳,打得重伤昏死。 抬回聂府之后,今天早上就咽气了。这也就给了战神聂天附身的机会。 “元脉尽毁吗?”聂天稍稍镇定,开始检查自己的新身体。 “毒!”聂天内视元脉,惊愕现,他的元脉除了损伤严重之外,竟然还呈现污黑之色。 “我是被毒死的!”聂天脑海之中出现一张面孔,聂家大执事,聂三通。 在聂天受伤期间,只有聂三通看过他,给他服下了一枚“恢复伤势”的固元丹。 “好一个聂三通,定是觊觎家主之位,谋害于我。”聂天马上明白了,双瞳之中浮现一抹森然寒光。 “嗯?”聂天继续内视身体,脸色唰地一变,惊骇道:“星辰原石!居然跟着我一起重生了!” “家主,大事不好了!”就在这个时候,一道身影夺门而入,惊慌大叫。 “阿牛,生什么事了?”聂天看着来人,淡淡问道。 阿牛,聂天的仆从,也是整个聂家唯一一个把他当家主的人。 “家主,巴,巴家的人来逼婚了!”喘着粗气,阿牛着急说道。 “巴家!”聂天微微皱眉,想起自己就是被巴家大少爷巴子阳打伤,脸色顿时变得阴沉起来。 巴家,和聂家一样,墨阳城三大家族之一。 不过自从三年前聂天父亲死后,聂家的声望一天不如一天,到了今日,已经是大厦将倾。 正因为这样,巴家大少爷巴子阳才敢把聂天这个巴家家主打得重伤昏死。 “阿牛,你不要着急,逼婚到底是怎么回事?”聂天并不慌张,反倒玩味一笑。 阿牛愣了一下,一脸古怪地看着聂天。 这还是家主吗?怎么这么镇定? 阿牛隐隐感觉聂天变了,和以前不一样了,却又说不出哪里不一样。 “快说啊。”聂天见阿牛愣,催促一声。 “哎!是!”阿牛反应过来,赶紧说道:“巴家的管家带着巴家大少年和三少爷来我们府上提亲了,而且是向最有天赋的九小姐提亲。” “九妹!”聂天脑海中浮现一张粉雕玉琢,乖巧可爱的脸蛋。 聂家是大家族,人口多,同辈之间,直接按年龄排序。 九妹,就是聂家年轻一代年龄第九的女孩。 “九妹好像叫聂雨柔吧。”聂天记得,上次见九妹,还是在三年之前,那时的聂雨柔还是一个六岁的小姑娘。 现在想来,也该有九岁了。 “九岁?!”聂天惊叫一声。 谁会向一个九岁的小女孩提亲? “巴家给谁提亲?”聂天脸色一沉,眼神闪过一抹狠辣。 向一个九岁的小孩提亲,巴家的人简直丧心病狂。 先是打伤聂天,然后又上门逼婚,巴家的人真是嚣张到姥姥家了。 “巴家三少爷巴子星。”阿牛回答。 “巴子星!”聂天脸色更加阴沉,沉声道:“如果我没记错,巴子星是个傻子吧。” “嗯。”阿牛看着聂天,咽了一下口水,重重点头。 聂天确实没有记错,巴子星的确是一个傻子,而且还是他亲手打傻的。 三年前的聂天,风头正劲,墨阳城武会之上,巴子星不服气,向他挑战,结果被打成了傻子。 为此事,聂家和巴家差一点血拼。 现在,巴家居然替巴子星向聂雨柔提亲,明显是欺负聂家势弱,想要报以前的耻辱。 聂雨柔是聂家新一代天才,刚刚九岁,已经是元脉四重,天赋直追当年的聂天。 若是聂雨柔嫁给了巴子星,聂家绝对会沦为墨阳城的笑柄,而且还将失去一位少年天才。 “不行!绝对不能让这种事情生!”聂天一脸肃杀,低吼道:“带路,我要去议事大堂!” “在我的头上拉屎,还管我要纸。巴家,今天我要让你们把自己拉的屎,吃回去!”聂天心中,霸道怒吼。"}
+{"bookname": "", "content": ""}