您好,登錄后才能下訂單哦!
本文實例講述了python Scrapy框架第一個入門程序。分享給大家供大家參考,具體如下:
首先創建項目:
scrappy start project maitian
第二步: 明確要抓取的字段items.py
import scrapy class MaitianItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() price = scrapy.Field() area = scrapy.Field() district = scrapy.Field()
第三步: 在spider目錄下創建爬蟲文件: zufang_spider.py
2.1 創建一個類,并繼承scrapy的一個子類: scrapy.Spider
2.2 自定義爬取名, name="" 后面運行框架需要用到;
2.3 定義爬取目標網址
2.4 定義scrapy的方法
下面是簡單項目:
import scrapy from maitian.items import MaitianItem class MaitianSpider(scrapy.Spider): name = "zufang" start_urls = ['http://bj.maitian.cn/zfall/PG1'] def parse(self, response): for zufang_itme in response.xpath('//div[@class="list_title"]'): yield { 'title': zufang_itme.xpath('./h2/a/text()').extract_first().strip(), 'price': zufang_itme.xpath('./div[@class="the_price"]/ol/strong/span/text()').extract_first().strip(), 'area': zufang_itme.xpath('./p/span/text()').extract_first().replace('㎡', '').strip(), 'district': zufang_itme.xpath('./p//text()').re(r'昌平|朝陽|東城|大興|豐臺|海淀|石景山|順義|通州|西城')[0], } next_page_url = response.xpath( '//div[@id="paging"]/a[@class="down_page"]/@href').extract_first() if next_page_url is not None: yield scrapy.Request(response.urljoin(next_page_url))
第四步: 在settings.py文件中設置數據保存到數據庫
. . . ITEM_PIPELINES = {'maitian.pipelines.MaitianPipeline': 300,} MONGODB_HOST = '127.0.0.1' MONGODB_PORT = 27017 MONGODB_DBNAME = 'maitian' MONGODB_DOCNAME = 'zufang'
第五步: 通過管道pipelines.py 連接上面的操作
import pymongo from scrapy.conf import settings class MaitianPipeline(object): def __init__(self): 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): zufang = dict(item) self.post.insert(zufang) return item
其中 middlewares.py 文件暫不處理
以上簡單的scrapy爬蟲項目搭建完畢了
更多相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家基于Scrapy框架的Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。