国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python使用Scrapy框架抓取起點中文網免費小說案例

khlbat / 723人閱讀

摘要:使用工具一使用創建項目過程略二安裝框架三創建項目創建爬蟲項目創建爬蟲,先進入爬蟲項目目錄創建完成后項目目錄如下目錄下的的就是我們的爬蟲文件四打開編寫爬蟲的代碼進入需要爬去的書的目錄,找到開始設置鬼吹燈圖書目錄在創建項目的時候,篩選的地址為打

使用工具,ubuntu,python,pycharm
一、使用pycharm創建項目:過程略
二、安裝scrapy框架

pip install Scrapy

三、創建scrapy項目:

1.創建爬蟲項目
    scrapy startproject qidian
2.創建爬蟲,先進入爬蟲項目目錄
cd qidian/
scrapy genspider book book.qidian.com

創建完成后項目目錄如下


目錄下的的book.py就是我們的爬蟲文件

四、打開book.py編寫爬蟲的代碼

1.進入需要爬去的書的目錄,找到開始url
設置start_url:
#鬼吹燈圖書目錄
start_urls = ["https://book.qidian.com/info/53269#Catalog"]
2、在創建項目的時候,篩選的url地址為:

allowed_domains = ["book.qidian.com"]

  打開圖書章節后發現章節的url如下:
 # https://read.qidian.com/chapter/PNjTiyCikMo1/FzxWdm35gIE1
  所以需要將read.qidian.com 加入allowed_domains 中,
allowed_domains = ["book.qidian.com", "read.qidian.com"]
剩下的就是通過xpath 獲取抓取到的內容,提取我們需要的內容
完整代碼如下
# -*- 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):
        # 獲取章節列表
        li_list = response.xpath("http://div[@class="volume"][2]/ul/li")
        # 列表循環取出章節名稱和章節對應的url
        for li in li_list:
            item = {}
            # 章節名稱
            item["chapter_name"] = li.xpath("./a/text()").extract_first()
            # 章節url
            item["chapter_url"] = li.xpath("./a/@href").extract_first()
            # 獲取到的url //read.qidian.com/chapter/PNjTiyCikMo1/TpiSLsyH5Hc1
            # 需要重新構造
            item["chapter_url"] = "https:" + item["chapter_url"]
            # 循環抓取每個章節的內容
            if item["chapter_url"] is not None:
                # meta:傳遞item數據
                yield scrapy.Request(item["chapter_url"], callback=self.parse_chapter, meta={"item": item})

    def parse_chapter(self, response):
        item = response.meta["item"]
        # 獲取文章內容
        item["chapter_content"] = response.xpath("http://div[@class="read-content j_readContent"]/p/text()").extract()
        yield item

五、將爬去數據保存到mongodb中

1.修改setting文件
找到并打開注釋:
ITEM_PIPELINES = {
    "qidain.pipelines.QidainPipeline": 300,
}
2.添加monggodb相關配置
# 主機地址
MONGODB_HOST = "127.0.0.1"
# 端口
MONGODB_PORT = 27017
# 需要保存的數據哭名字
MONGODB_DBNAME = "qidian"
# 保存的文件名
MONGODB_DOCNAME = "dmbj"
3.在pipelines.py文件中保存數據,最終文件內容如下
# -*- 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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44159.html

相關文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 23個Python爬蟲開源項目代碼,包含微信、淘寶、豆瓣、知乎、微博等

    摘要:今天為大家整理了個爬蟲項目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關注。代碼獲取新浪微博進行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...

    jlanglang 評論0 收藏0
  • Scrapy 框架入門簡介

    摘要:解析的方法,每個初始完成下載后將被調用,調用的時候傳入從每一個傳回的對象來作為唯一參數,主要作用如下負責解析返回的網頁數據,提取結構化數據生成生成需要下一頁的請求。 Scrapy 框架 Scrapy是用純Python實現一個為了爬取網站數據、提取結構性數據而編寫的應用框架,用途非常廣泛。 框架的力量,用戶只需要定制開發幾個模塊就可以輕松的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常...

    Coding01 評論0 收藏0
  • 網絡爬蟲介紹

    摘要:什么是爬蟲網絡爬蟲也叫網絡蜘蛛,是一種自動化瀏覽網絡的程序,或者說是一種網絡機器人。 什么是爬蟲 網絡爬蟲也叫網絡蜘蛛,是一種自動化瀏覽網絡的程序,或者說是一種網絡機器人。它們被廣泛用于互聯網搜索引擎或其他類似網站,以獲取或更新這些網站的內容和檢索方式。它們可以自動采集所有其能夠訪問到的頁面內容,以供搜索引擎做進一步處理(分檢整理下載的頁面),而使得用戶能更快的檢索到他們需要的信息。簡...

    sf190404 評論0 收藏0
  • scrapy-redis分布式爬蟲框架詳解

    摘要:分布式爬蟲框架詳解隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應。 scrapy-redis分布式爬蟲框架詳解 隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。由于互聯網是開放的,每個人都可以在網絡上...

    myeveryheart 評論0 收藏0

發表評論

0條評論

khlbat

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<