廢話不多說,直接上**
其它自己生成的檔案都不用去改,只需要在spiders資料夾內新建兩個.py檔案就行
1、
cd f:\程式設計\python\scrapy
# 在標籤內有另外的標籤
# 所以要用//text()獲取所有文字
title = chapter.xpath(
"..//text()"
).extract(
)if title is
none
: self.log(
"none!"
)continue
# 獲取到的文字中有"\n "以及" "一類
# 所以要先strip(),再 if t != ""
for i in
range
(len
(title)):
title[i]
= title[i]
.strip(
)yield
3、
scrapy crawl chapter -o ch.json
爬取到的ch.json節選如下:[,
,,,,
…]4、
# in spiders\images.py
import scrapy
import requests
import json
import os
class
imagespider
(scrapy.spider)
: name =
"images"
defstart_requests
(self)
:with
open
("ch.json"
,'r'
)as f:
chapters_list = json.load(f)
for chapter in chapters_list:
yield scrapy.request(chapter[
"url"
], callback=self.parse, meta=
)def
img_parse
(self, response)
:with
open
(response.meta[
"path"],
'wb'
)as f:
f.write(response.body)
defparse
(self, response)
: title = response.meta[
"title"
] img_tags = response.xpath(
'//div[@class="rd-article__pic hide"]'
) page_ids =
image_urls =
for tag in img_tags:
# 按照data-page_id排序
page_id =
int(tag.xpath(
'./@data-page_id'
).extract_first())
image_urls[page_id]
= response.urljoin(tag.xpath(
'./img/@data-src'
).extract_first())
page_ids.sort(
)# 建立資料夾
try:
os.mkdir(
".\\images\\"
+ title)
except fileexistserror:
pass
# 如果資料夾已存在
for page_id in page_ids:
url = image_urls[page_id]
# 檔案格式:".\images\%title%\%page_id%.jpg"
# 為了使爬取到的有序,必須這麼幹
yield scrapy.request(url, callback=self.img_parse, meta=
)
5、
scrapy crawl images
效果:
如圖可以看到,10961次get請求,10396個(1.2g)檔案,364秒
你體會到驚人的效率了嗎?
scrapy漫畫爬蟲 漫客棧
爬取漫客棧上的免費漫畫 每個漫畫的資訊都儲存在了div中,先獲取乙個div list,然後再遍歷進行需要的資訊的收集。div list response.xpath div class cate comic list clearfix div for div in div list item ite...
scrapy 爬取流程
什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程 關鍵是訪問之前要登入怎麼辦,資料還要注入呢 這是個列表,裡面就是爬取的鏈結了 我們前面爬取就只是寫了乙個,但是其實可以寫多個 鏈結又是怎麼訪問的呢 這東西你就可以手動提取鏈結返回了 這東西你就得好好注意了 從入...
scrapy 爬取小說
速度是相當的快的 爬取整站的 最後結果儲存至mongodb資料庫 pycharm開發還是很好用的 建立專案 scrapy startproject daomubiji 執行專案 scrapy crawl daomubi settings default request headers items t...