日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scrapy爬取姓名大全,看看那个名字最受父母青睐

發布時間:2025/1/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scrapy爬取姓名大全,看看那个名字最受父母青睐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“AI搞事情”關注我們


最近在做的項目需要用到名字的數據,可哪兒有這么多名字給我用呢?經一通搜索,不僅找到一個神奇的網站姓名大全,還有人開源了爬蟲的代碼。讓我一番修改,得到了百萬姓名,什么李偉、張偉一個也沒跑掉。話不多說,開始!!!

scrapy介紹

Scrapy 是一套基于Twisted、純python實現的異步爬蟲框架,用戶只需要定制開發幾個模塊就可以輕松的實現一個爬蟲,用來抓取網頁內容以及各種圖片,相當的方便~

Scrapy整體架構和組成

整體架構和組成

  • Scrapy Engine(引擎)

引擎負責控制數據流在系統所有組件中的流動,并在相應動作發生時觸發事件,是框架的核心。

  • Scheduler(調度器)

調度器從引擎接受request并將他們入隊,在引擎再次請求時將請求提供給引擎。

  • Downloader(下載器)

下載器負責獲取頁面數據并提供給引擎,而后提供給spider。

  • Spider(爬蟲)

Spider是Scrapy用戶編寫用于分析response并提取item(即獲取到item)或額外跟進的URL的類,定義了爬取的邏輯和網頁內容的解析規則。每個spider負責處理一個特定(或一些)網站。

  • Item Pipeline(管道)

Item Pipeline負責處理被spider提取出來的item。典型的處理有清洗,驗證及持久化(例如存取到數據庫中)

  • Downloader Middlewares(下載中間件)

下載器中間件是在引擎及下載器之間的特定鉤子(specific hook),處理Downloader傳遞給引擎的response(也包括引擎傳遞給下載器的Request)。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。

  • Spider Middlewares(Spider中間件)

Spider中間件是在引擎及Spider之間的特定鉤子(specific hook),處理spider的輸入(response)和輸出(items及requests)。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。

安裝

pip install scrapy

爬蟲項目

準備工作

  • 創建項目

scrapy startproject xingmingdq
  • 新建爬蟲

scrapy genspider xingming resgain.net/xmdq.html

這個時候,目錄下會創建xingmingdq文件夾,文件夾下就是xingmingdq scrapy項目,spiders下有xingming爬蟲文件。

建立item

items.py中添加以下代碼:

class Xingming_Item(scrapy.Item):name = scrapy.Field()xingshi = scrapy.Field()xingshi_zh = scrapy.Field()

爬取名字

爬蟲文件spiders/xingming.py書寫網頁解析規則。

# -*- coding: utf-8 -*- import scrapy from xingmingdq.items import Xingming_Itemclass XingmingSpider(scrapy.Spider):name = 'xingming'# allowed_domains = ['www.resgain.net/xmdq.html']start_urls = ['http://www.resgain.net/xmdq.html']def parse(self, response):content = response.xpath('//div[@class="col-xs-12"]/a/@href').extract()for i in content:page = 0href = 'http:' + ibase = href.split('/name')[0] + '/name_list_'while page < 10:url = base + str(page) + '.html'page += 1yield scrapy.Request(url, callback=self.parse_in_html)# 解析每一頁def parse_in_html(self, response):person_info = response.xpath('//div[@class="col-xs-12"]/div[@class="btn btn-default btn-lg namelist"]/div[@style="margin-top: 20px;"]')xingshi_zh = response.xpath('//div[@class="navbar-header"]/a/div[@style="text-align: center;"]/text()').extract()[0].split('姓之家')[0]xingshi = response.url.split('/')[2].split('.')[0]for every_one in person_info:name = every_one.xpath('./text()').extract()[0]the_item = Xingming_Item()the_item['name'] = namethe_item['xingshi'] = xingshithe_item['xingshi_zh'] = xingshi_zhyield the_item

處理流程

pipelines.py中,編寫結果寫入文件的處理。

class XingmingdqPipeline(object):def __init__(self):self.fp = open('xingming.csv', 'w', encoding='utf-8')def process_item(self, item, spider):self.fp.write('%s,%s,%s\n' % (item['name'], item['xingshi_zh'], item['xingshi']))return itemdef close_spider(self, spider):self.fp.close()

設置參數

要想執行pipelines,需要在settings.py中進行配置,搜索USER_AGENT和ITEM_PIPELINES進行修改。

# 修改USER_AGENT USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)' # 配置ITEM_PIPELINES ITEM_PIPELINES = {'xingmingdq.pipelines.XingmingdqPipeline': 300, }

執行爬蟲

  • 命令執行

scrapy crawl xingming
  • 腳本執行
    寫入python文件,創建run.py,編輯下面代碼,pycharm中運行。

import os os.system("scrapy crawl xingming")

結果文件

詞云分析

在線詞云生成網站:https://www.weiciyun.com/

導入爬取的姓名數據,分析出圖:

哈哈哈,最多的竟然是婷婷

找找有你的名字沒有吧。

參考資料:
1.scrapy官方文檔: https://doc.scrapy.org/en/latest/
2.Python Scrapy 爬取姓名大全數據:https://www.jianshu.com/p/18bae338949a

長按二維碼關注我們

有趣的靈魂在等你

留言請摁

總結

以上是生活随笔為你收集整理的Scrapy爬取姓名大全,看看那个名字最受父母青睐的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。