摘要:使用工具一使用創(chuàng)建項(xiàng)目過(guò)程略二安裝框架三創(chuàng)建項(xiàng)目創(chuàng)建爬蟲項(xiàng)目創(chuàng)建爬蟲,先進(jìn)入爬蟲項(xiàng)目目錄創(chuàng)建完成后項(xiàng)目目錄如下目錄下的的就是我們的爬蟲文件四打開編寫爬蟲的代碼進(jìn)入需要爬去的書的目錄,找到開始設(shè)置鬼吹燈圖書目錄在創(chuàng)建項(xiàng)目的時(shí)候,篩選的地址為打
使用工具,ubuntu,python,pycharm
一、使用pycharm創(chuàng)建項(xiàng)目:過(guò)程略
二、安裝scrapy框架
pip install Scrapy
三、創(chuàng)建scrapy項(xiàng)目:
1.創(chuàng)建爬蟲項(xiàng)目
scrapy startproject qidian
2.創(chuàng)建爬蟲,先進(jìn)入爬蟲項(xiàng)目目錄
cd qidian/ scrapy genspider book book.qidian.com
創(chuàng)建完成后項(xiàng)目目錄如下
目錄下的的book.py就是我們的爬蟲文件
四、打開book.py編寫爬蟲的代碼
1.進(jìn)入需要爬去的書的目錄,找到開始url 設(shè)置start_url:
#鬼吹燈圖書目錄 start_urls = ["https://book.qidian.com/info/53269#Catalog"]
2、在創(chuàng)建項(xiàng)目的時(shí)候,篩選的url地址為:
allowed_domains = ["book.qidian.com"]
打開圖書章節(jié)后發(fā)現(xiàn)章節(jié)的url如下: # https://read.qidian.com/chapter/PNjTiyCikMo1/FzxWdm35gIE1 所以需要將read.qidian.com 加入allowed_domains 中,
allowed_domains = ["book.qidian.com", "read.qidian.com"]
剩下的就是通過(guò)xpath 獲取抓取到的內(nèi)容,提取我們需要的內(nèi)容 完整代碼如下
# -*- coding: utf-8 -*- import scrapy import logging logger = logging.getLogger(__name__) class BookSpider(scrapy.Spider): name = "book" allowed_domains = ["book.qidian.com", "read.qidian.com"] start_urls = ["https://book.qidian.com/info/53269#Catalog"] def parse(self, response): # 獲取章節(jié)列表 li_list = response.xpath("http://div[@class="volume"][2]/ul/li") # 列表循環(huán)取出章節(jié)名稱和章節(jié)對(duì)應(yīng)的url for li in li_list: item = {} # 章節(jié)名稱 item["chapter_name"] = li.xpath("./a/text()").extract_first() # 章節(jié)url item["chapter_url"] = li.xpath("./a/@href").extract_first() # 獲取到的url //read.qidian.com/chapter/PNjTiyCikMo1/TpiSLsyH5Hc1 # 需要重新構(gòu)造 item["chapter_url"] = "https:" + item["chapter_url"] # 循環(huán)抓取每個(gè)章節(jié)的內(nèi)容 if item["chapter_url"] is not None: # meta:傳遞item數(shù)據(jù) yield scrapy.Request(item["chapter_url"], callback=self.parse_chapter, meta={"item": item}) def parse_chapter(self, response): item = response.meta["item"] # 獲取文章內(nèi)容 item["chapter_content"] = response.xpath("http://div[@class="read-content j_readContent"]/p/text()").extract() yield item
五、將爬去數(shù)據(jù)保存到mongodb中
1.修改setting文件 找到并打開注釋:
ITEM_PIPELINES = { "qidain.pipelines.QidainPipeline": 300, }
2.添加monggodb相關(guān)配置
# 主機(jī)地址 MONGODB_HOST = "127.0.0.1" # 端口 MONGODB_PORT = 27017 # 需要保存的數(shù)據(jù)哭名字 MONGODB_DBNAME = "qidian" # 保存的文件名 MONGODB_DOCNAME = "dmbj"
3.在pipelines.py文件中保存數(shù)據(jù),最終文件內(nèi)容如下
# -*- coding: utf-8 -*- # Define your item pipelines here # # Don"t forget to add your pipeline to the ITEM_PIPELINES setting # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html from scrapy.conf import settings import pymongo class QidainPipeline(object): def __init__(self): """在__init__中配置mongodb""" host = settings["MONGODB_HOST"] port = settings["MONGODB_PORT"] db_name = settings["MONGODB_DBNAME"] client = pymongo.MongoClient(host=host, port=port) db = client[db_name] self.post = db[settings["MONGODB_DOCNAME"]] def process_item(self, item, spider): self.post.insert(item) return item
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44159.html
摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:今天為大家整理了個(gè)爬蟲項(xiàng)目。地址新浪微博爬蟲主要爬取新浪微博用戶的個(gè)人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過(guò)多賬號(hào)登錄來(lái)防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...
摘要:解析的方法,每個(gè)初始完成下載后將被調(diào)用,調(diào)用的時(shí)候傳入從每一個(gè)傳回的對(duì)象來(lái)作為唯一參數(shù),主要作用如下負(fù)責(zé)解析返回的網(wǎng)頁(yè)數(shù)據(jù),提取結(jié)構(gòu)化數(shù)據(jù)生成生成需要下一頁(yè)的請(qǐng)求。 Scrapy 框架 Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛。 框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來(lái)抓取網(wǎng)頁(yè)內(nèi)容以及各種圖片,非常...
摘要:什么是爬蟲網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)蜘蛛,是一種自動(dòng)化瀏覽網(wǎng)絡(luò)的程序,或者說(shuō)是一種網(wǎng)絡(luò)機(jī)器人。 什么是爬蟲 網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)蜘蛛,是一種自動(dòng)化瀏覽網(wǎng)絡(luò)的程序,或者說(shuō)是一種網(wǎng)絡(luò)機(jī)器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。它們可以自動(dòng)采集所有其能夠訪問(wèn)到的頁(yè)面內(nèi)容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁(yè)面),而使得用戶能更快的檢索到他們需要的信息。簡(jiǎn)...
摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請(qǐng)求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個(gè)人都可以在網(wǎng)絡(luò)上...
閱讀 991·2021-09-26 10:15
閱讀 2077·2021-09-24 10:37
閱讀 2585·2019-08-30 13:46
閱讀 2636·2019-08-30 11:16
閱讀 2425·2019-08-29 10:56
閱讀 2598·2019-08-26 12:24
閱讀 3482·2019-08-23 18:26
閱讀 2667·2019-08-23 15:43