python爬蟲爬取趕集網資料

來源:互聯網
上載者:User

標籤:pen   pycha   col   結果   建立項目   資料庫   close   這一   資料表   

前期的配置工作在之前的一篇博文中有提到過,現在直接進行爬取

一.建立項目

scrapy startproject putu

二.建立spider檔案

1 scrapy genspider  patubole patubole.com

 

三.利用chrome瀏覽器分析出樓價和標題的兩個欄位的xpath運算式,開始編寫patubole.py檔案。網路的爬取是通過這個檔案進行的

以下代碼是最終的代碼

所建的patubole.py檔案必須實現name,parse函數,start_url這三個屬性

 1 # -*- coding: utf-8 -*- 2 import scrapy 3 from scrapy.http import Request 4 from urllib import parse 5 from patu.items import PatuItem 6  7  8 class PatuboleSpider(scrapy.Spider): 9     name = ‘patubole‘10     # allowed_domains = [‘python.jobbole.com‘]11     start_urls = [‘http://xa.ganji.com/fang1/‘]12 13     def parse(self, response):14         zufang_title=response.xpath(‘//*[@class="f-list-item ershoufang-list"]/dl/dd[1]/a/text()‘).extract()15         zufang_money=response.xpath(‘//*[@class="f-list-item-wrap f-clear"]/dd[5]/div[1]/span[1]/text()‘).extract()17         for i,j in zip(zufang_title,zufang_money):18             print(i,":",j)20 

四.將爬取的資料儲存到資料庫sufang中。

(1)在pycharm中建立資料庫

完成後會出現

(2)將資料存放在建立的資料庫zufang的資料表sufang中

資料的爬取是有patubole.py實現的,資料的儲存是由pipelines.py實現的,pipelines.py又是有items.py提供資料的支援

所以編寫items.py

 1 # -*- coding: utf-8 -*- 2  3 # Define here the models for your scraped items 4 # 5 # See documentation in: 6 # https://doc.scrapy.org/en/latest/topics/items.html 7  8 import scrapy 9 10 11 class PatuItem(scrapy.Item):12     # define the fields for your item here like:13     # name = scrapy.Field()14     zufang_title=scrapy.Field()15     zufang_money=scrapy.Field()16     pass

此時就要回過頭來修改剛開是為了測試編寫的patubole.py 檔案

代碼如下

 1 # -*- coding: utf-8 -*- 2 import scrapy 3 from scrapy.http import Request 4 from urllib import parse 5 from patu.items import PatuItem 6  7  8 class PatuboleSpider(scrapy.Spider): 9     name = ‘patubole‘10     # allowed_domains = [‘python.jobbole.com‘]11     start_urls = [‘http://xa.ganji.com/fang1/‘]12 13     def parse(self, response):14         zufang_title=response.xpath(‘//*[@class="f-list-item ershoufang-list"]/dl/dd[1]/a/text()‘).extract()15         zufang_money=response.xpath(‘//*[@class="f-list-item-wrap f-clear"]/dd[5]/div[1]/span[1]/text()‘).extract()16         pipinstall=PatuItem()   #建立PatuItem執行個體,實現資料的傳遞17         for i,j in zip(zufang_title,zufang_money):18             pipinstall[‘zufang_title‘]=i19             pipinstall[‘zufang_money‘]=j20 21             yield pipinstall    #這一步很重要
22 23 24 # pass

 

(3)在settings.py中進行PatuPipeline檔案配置

1 ITEM_PIPELINES = {2    ‘patu.pipelines.PatuPipeline‘: 300,3 }

(5)pipelines.py檔案代碼,實現儲存資料到資料庫中

其中包含SQL的相關知識

 1 # Define your item pipelines here 2 # 3 # Don‘t forget to add your pipeline to the ITEM_PIPELINES setting 4 # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html 5  6 import sqlite3 7 class PatuPipeline(object): 8     def open_spider(self,spider): 9         self.con=sqlite3.connect(‘zufang sqlite‘)10         self.cn=self.con.cursor()11 12 13     def process_item(self, item, spider):14         # print(item.zufang_title,item.zufang_money)15         insert_sql=‘insert into sufang (title,money) values("{}","{}")‘.format(item[‘zufang_title‘],item[‘zufang_money‘])16         print(insert_sql)17         self.cn.execute(insert_sql)18         self.con.commit()19         return item20 21     def spider_close(self,spider):22         self.con.close()

最終結果

 

 其中main.py檔案是為了調式方便而添加的,可以不用,直接用相關命令啟動爬蟲

 

python爬蟲爬取趕集網資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.