使用scrapy爬取小說網站
宣告:僅供學習交流使用
- items.py ->內容模板
import scrapy
class QqduItem(scrapy.Item):
book = scrapy.Field()
bookId = scrapy.Field()
chapter = scrapy.Field()
chapterId = scrapy.Field()
content = scrapy.Field()
- book.py ->爬蟲檔案
# -*- coding: utf-8 -*-
import scrapy, sys
from qqdu.items import QqduItem
from scrapy.http import Request
reload(sys)
sys.setdefaultencoding("gbk")
class BookSpider(scrapy.Spider):
name = 'book'
allowed_domains = ['www.77dus.com']
start_urls = ['https://www.77dus.com/html/82/82709/index.html'] # 索要爬取小說的網址
def parse(self, response):
result = response.xpath('//*[@id="wp"]/div/div/div/ul/li/a/@href' ).extract() # 獲取章節連結
for sel in result:
yield Request('https://www.77dus.com' + sel, meta={'fileName': sel}, callback=self.bookContent)
def bookContent(self, response):
baseUrl = response.url
item = QqduItem()
book = response.xpath('//*[@id="content"]/div[1]/p/a[1]/text()' ).extract()[0] # 獲取書名
chapter = response.xpath('//h1[@class="novel_title"]/text()').extract()[0] # 獲取章節名
contents = response.xpath('//div[@class="novel_content"]/text()').extract() # 獲取內容
# 拼接小說內容
text = (chapter + "\r\n\r\n")
for rel in contents:
text += rel
baseUrl = baseUrl.split('.')[2]
baseUrl = baseUrl.split('/')
bookId = baseUrl[-2] # 獲取書id
chapterId = baseUrl[-1] # 獲取章節id
item['book'] = book
item['bookId'] = bookId
item['chapter'] = chapter
item['chapterId'] = chapterId
item['content'] = text
yield item
- pipelines.py ->管道檔案,用於對所爬取內容進行操作
import os
import sys
import codecs,pymongo
reload(sys)
sys.setdefaultencoding("gbk")
# 儲存到檔案
class QqduPipeline(object):
def process_item(self, item, spider):
curPath = 'qqdubooks'
tempPath = str(item['book'])
targetPath = curPath + os.path.sep + tempPath
if not os.path.exists(targetPath):
os.makedirs(targetPath)
filename_path = targetPath + os.path.sep + str(item['chapterId']) + '.txt'
file = codecs.open(filename_path, 'w', encoding='utf-8')
file.write(item['content'] + "\r\n")
file.close()
return item
# # 儲存到mongoDb資料庫
# class QqduPipeline(object):
# def __init__(self):
# host = "127.0.0.1"
# port = 27017
# dbname = "qqdb"
# sheetname = "qqdbbooks"
# # 建立MONGODB資料庫連結
# client = pymongo.MongoClient(host=host, port=port)
# # 指定資料庫
# mydb = client[dbname]
# # 存放資料的資料庫表名
# self.post = mydb[sheetname]
#
# def process_item(self, item, spider):
# data = dict(item)
# self.post.insert(data)
# return item
- 在settings.py 開啟管道,新增如下內容
ITEM_PIPELINES = {
'qqdu.pipelines.QqduPipeline': 300,
}
相關推薦
使用scrapy爬取小說網站
宣告:僅供學習交流使用 items.py ->內容模板 import scrapy class QqduItem(scrapy.Item): book = scrapy.Fie
Scrapy爬取知名網站的圖書資訊
開啟虛擬環境,建立專案檔案 開啟控制檯,輸入workon py3scrapy 進入虛擬環境所在盤(我的是E盤) 建立專案檔案,輸入scrapy startproj
scrapy爬取西刺網站ip
close mon ins css pro bject esp res first # scrapy爬取西刺網站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem clas
python scrapy爬取皇冠體育源碼下載網站數據二(scrapy使用詳細介紹)
時間 源碼 保存文件 i+1 zh-cn china flat url def 1、scrapy工程創建皇冠體育源碼下載論壇:haozbbs.com Q1446595067 在命令行輸入如下命令,創建一個使用scrapy框架的工程 scrapy startproject s
Scrapy :爬取培訓網站講師資訊
Scrapy 框架 Scrapy是用純Python實現一個為了爬取網站資料、提取結構性資料而編寫的應用框架,用途非常廣泛。 框架的力量,使用者只需要定製開發幾個模組就可以輕鬆的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常之方便。 Scrapy 使用
43.scrapy爬取鏈家網站二手房信息-1
response ons tro 問題 import xtra dom nts class 首先分析:目的:采集鏈家網站二手房數據1.先分析一下二手房主界面信息,顯示情況如下:url = https://gz.lianjia.com/ershoufang/pg1/顯示
43.scrapy爬取鏈家網站二手房資訊-1
首先分析:目的:採集鏈家網站二手房資料1.先分析一下二手房主介面資訊,顯示情況如下:url = https://gz.lianjia.com/ershoufang/pg1/顯示總資料量為27589套,但是頁面只給返回100頁的資料,每頁30條資料,也就是隻給返回3000條資料。
44.scrapy爬取鏈家網站二手房資訊-2
全面採集二手房資料:網站二手房總資料量為27650條,但有的引數欄位會出現一些問題,因為只給返回100頁資料,具體檢視就需要去細分請求url引數去請求網站資料。我這裡大概的獲取了一下篩選條件引數,一些存在問題也沒做細化處理,大致的採集資料量為21096,實際19794條。看一下執行完成結果: {'d
爬取小豬網站住房資訊並把結果儲存到資料庫中
from bs4 import BeautifulSoup import requests, pymongo #啟用MongoDB client = pymongo.MongoClient('localhost', 27017) #給資料庫命名 xiaozhu = client['xiao
利用scrapy爬取需要登入的網站的資料(包含驗證碼的處理)
利用scrapy爬取需要登入的網站的資料(包含驗證碼的處理)–以爬取豆瓣網資料為例 1、在cmd命令列中輸入 scrapy startproject douban,建立scrapy爬蟲專案 2、在cmd命令列中調整到douban專案資料夾下輸入 scrapy genspider -t
利用scrapy框架遞迴爬取菜譜網站
介紹: 最近學習完scrapy框架後,對整個執行過程有了進一步的瞭解熟悉。於是想著利用該框架對食譜網站上的美食圖片進行抓取,並且分別按照各自的命名進行儲存。 1、網頁分析 爬取的網站是www.xinshipu.com,在爬取的過程中我發現使用xpath對網頁進行解析時總是找不到對應的標籤
scrapy爬蟲爬取動態網站
爬取360圖片上的美女圖片 360圖片網站上的圖片是動態載入的,動態載入 就是通過ajax請求介面拿到資料喧染在網頁上。我們就可以通過遊覽器的開發者工具分析,在我們向下拉動視窗時就會出現這麼個請求,如圖所示: 所以就判定這個url就是ajax請求的介面:
利用scrapy輕鬆爬取招聘網站資訊並存入MySQL
前言 Scrapy版本:1.4; Python版本:3.6; OS:win10; 本文完整專案程式碼:完整示例; 本文目標: 通過爬取騰訊招聘網站招聘崗位,熟悉scrapy,並掌握資料庫儲存操作; 一、準備工作 ♣ 基礎工作 首先你要安裝S
scrapy爬取愛上租網站的房源資訊(一)
爬取的頁面如下:愛上租的租房頁面 需要爬取該頁面下所有房間的基本資訊 scrapy框架的安裝和使用教程參考以下連結 http://www.scrapyd.cn/doc/178.html 首先在spiders目錄下新建一個house_spider.py,將上面爬
【實戰】scrapy-redis + webdriver 爬取航空網站
引言 今天給大家帶來的是scrapy-redis + webdriver實戰案例。在爬蟲編寫過程中,我們經常會遇到以下的情況,想要用scrapy框架,但是因為網站的原因,還想要用webdriver,那麼要如何實現scrapy + webdriver呢?其實很簡單,大家都知道,在scrapy中,我
Python爬蟲scrapy框架爬取動態網站——scrapy與selenium結合爬取資料
scrapy框架只能爬取靜態網站。如需爬取動態網站,需要結合著selenium進行js的渲染,才能獲取到動態載入的資料。如何通過selenium請求url,而不再通過下載器Downloader去請求這個url?方法:在request物件通過中介軟體的時候,在中介軟體內部開始
用Python Scrapy爬取某電影網站並存儲入mysql
爬取目標:javlib,使用框架Scrapy 首先使用在命令列裡scrapy startproject projectname和scrapy genspider spidername指令建立爬蟲。 首先定義items.pyimport scrapy class Av
Scrapy爬取知名技術網站文章並儲存到MySQL資料庫
之前的幾篇文章都是在講如何把資料爬下來,今天記錄一下把資料爬下來並儲存到MySQL資料庫。 文章中有講同步和非同步兩種方法。 所有文章文章的地址:http://blog.jobbole.com/all-posts/ 對所有文章
Python scrapy實踐應用,爬取電影網站的影片資源並存入資料庫
知識點 scrapy 分頁爬取。 scrapy提取頁面元素之xpath表示式語法 scrapy 配合pymysql儲存爬取到的資料到mysql資料庫 scrapy.Request(……)向回撥方法傳遞額外資料 資料庫儲存前先
python爬蟲--scrapy爬取騰訊招聘網站
背景:虛擬機器Ubuntu16.04,爬取https://hr.tencent.com/招聘資訊!第一步:新建專案:scrapy startproject tencent第二步:編寫items檔案 1 # -*- coding: utf-8 -*- 2 3 # D