创建数据库
在navicat里直接进入首先创建数据库zufang
create database zufang;
注意:最后是以分号结束,点击回车执行的
刷新以后得到了数据:
然后在刚才的Pycharm里面的Scrapy项目的命令行里输入ipython,使用python的命令行引入包:
import pysysql
然后建立数据库连接:
#建立连接
zufang = pymysql.connect(host='localhost',user='root',password='mima',database='zufang')
#创建表格
create_table = 'create table zufang (title varchar(512) , money varchar(128));'
#游标
zf_cursor = zufang.cursor()
#sql语句:创建个zufang的表格,有标题和价格两页
create_table = 'create table zufang (title varchar(512) , money varchar(128));'
#用游标执行
zf_cursor.execute(create_table)
然后可以看见创建成功了:
实际上在这个过程中,用sqlite3也可以的。mysql是服务型的,必须定义cursor游标;而sqlite3则不必,直接调用execute就好。
pipeline
点击pipeline.py文件,发现里面已经有内容了。
先把它放在一边
打开settings.py
找到ITEM_PIPELINES,把它的注释去掉。
改成如下形式:
ITEM_PIPELINES = {
#'my_1st_project.pipelines.My1StProjectPipeline': 300,
'my_1st_project.pipelines.My1StProjectPipeline': 300,
}
添加的部分是my_1st_project项目管道中的一个类。后面的值要在1-1000范围之内,如果有多个,值不能相同
那么回到ganji.py中来,要把输出内容放到items里面来,那么原文件的选中部分就不需要了。
打开items.py
从爬虫里面将数据传入到项目管道中,必须通过items里面定义的一个类才能传过去。将里面的内容加上titile和money,并复制class名称,这里是My1StProjectItem
回到ganji.py
在头部加上
from ..items import My1StProjectItem
在parse函数下面加上
zf = My1StProjectItem() #一定要有括号
在zip语句下面加上:
zf['title'] = i
zf['money'] = j
yield zf
即:
这样就成功传到了pipeline里面了。
打开pipeline测试一下:
注意,settings.py里面的管道标注必须和管道里面的class名称相对应,即
项目名.pipelines.类名
。
这时候再在命令行里输入scrapy crawl 爬虫名
:
例如:$ scrapy crawl zufang
可以返回结果(注意如果返回不成功的话,看看是不是频繁请求把访问禁止了,打开网页去拖一个滑块吧)
返回结果如下:
2018-12-18 22:28:43 [scrapy.utils.log] INFO: Scrapy 1.5.1 started (bot: my_1st_project)
2018-12-18 22:28:43 [scrapy.utils.log] INFO: Versions: lxml 4.2.4.0, libxml2 2.9.8, cssselect 1.0.3, parsel 1.5.0, w3lib 1.19.0, Twisted 18.7.0, Python 3.6.3 (v3.6.3:2c5fed86e0, Oct 3 2017, 00:32:08) - [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)], pyOpenSSL 18.0.0 (OpenSSL 1.1.0i 14 Aug 2018), cryptography 2.3.1, Platform Darwin-17.7.0-x86_64-i386-64bit
2018-12-18 22:28:43 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'my_1st_project', 'NEWSPIDER_MODULE': 'my_1st_project.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['my_1st_project.spiders']}
2018-12-18 22:28:43 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.logstats.LogStats']
2018-12-18 22:28:43 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware',
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2018-12-18 22:28:43 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware']
2018-12-18 22:28:43 [scrapy.middleware] INFO: Enabled item pipelines:
['my_1st_project.pipelines.My1StProjectPipeline']
2018-12-18 22:28:43 [scrapy.core.engine] INFO: Spider opened
2018-12-18 22:28:43 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-12-18 22:28:43 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-12-18 22:28:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://bj.ganji.com/robots.txt> (referer: None)
2018-12-18 22:28:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://bj.ganji.com/wblist/haidian/zufang/> (referer: None)
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '3700', 'title': '可可月付 永丰地铁 大牛坊 精装一居室 北斗星通 软件园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4500', 'title': '友谊嘉园小牛坊精装一居室(实图实价)4500出租 随时看房'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '魔方公寓 西二旗 上地 润泽庄园 13号线 设施齐全 '}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4890', 'title': '地铁813号线酒店式公寓独立卫浴月付灵活,24H'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '整租丨配有停车场 2千多平私密花园 700多平室内健身娱乐区'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4500', 'title': '凯盛家园精装两居室家具家电全齐 包物业取暖 随时看房拎包入住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '3600', 'title': '大牛坊 正规大一居出租 直达中关村 用友 永丰基地 实图实价'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5000', 'title': '田村 京粮广场 天下城 定慧寺 精装大两居室 0中介'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5000', 'title': '学院路 清枫华景园 文成杰座 基金委 林业大学 精装一居室'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5000', 'title': '田村小区 南北通透两居室 采光足 配套齐全 交通便利'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '3400', 'title': '大牛坊 用友 绿海 中关村软件园 博雅cc 百度 新浪 网易'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5200', 'title': '急租田村23号院 田村23号院南北通透 为您倾情呈现'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5800', 'title': '尚 诚 世华龙樾二里南向一居 采光好 无遮挡小区人车分流'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '暖冬福利超近距离地铁六号线田村站 距离地铁口50米 精装一居'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '火爆房源降价出租!甘家口出租精美一居 白堆子 云建大厦'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5900', 'title': '魔方公寓 魏公村 可月付 年底住一年免一个月 精装直租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '城华园精装大一居室 可长签 逸成东苑清枫华景园农业大学静淑苑'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '新增环保科技园近华为尚峰尚水尚品园北辰香麓空房两居室随时起租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4200', 'title': '远洋邦舍龙旗广场店 押一付一 无中介 拎包入住 可'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6000', 'title': '大河庄苑 真 实照片 真 实价格 真 实房源 12月底到期'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5000', 'title': '西北旺 大牛坊整租三居室 无中介.费 用友软件园中关村'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6300', 'title': '尚 诚 急租 莱圳家园东向精装一居室 看房随时有钥匙'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7100', 'title': '精装两居室 口腔医院 国家气象局 国家图书馆9号线 湖北大厦'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7400', 'title': '保福寺小区交通方便,距离地铁口300米 紧邻中关村软件园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7100', 'title': '(尚诚) 清缘东里精装南北两居室 临近永泰庄 东升科技园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '9450', 'title': '西直门地铁文慧桥枫蓝国际今典花园南向大三居业主直租出国急租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '柳浪家园一居室家电齐全,随时看房子,随时入住,业主人不错'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4500', 'title': '刚降价3000,人大院内精装两居 家电齐全 wifi 急租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '15000', 'title': '(新出)光大水墨高层南北2居室,精装修,家电家具全齐,可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '17000', 'title': '芙蓉里南街6号院 精装大三居 电梯楼 可办公'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4500', 'title': '温泉 西北旺 温馨两居 保利西山林语周边 齐全 16号屯佃站'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1800', 'title': '精装修 押一付一 地铁16号温阳路 稻香湖路 永丰 农大南路'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5200', 'title': '年底降价出租 精装两居室 南北通透 可以也可长租 包物业'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5600', 'title': '四季青西山 门头馨园北区二居精装入住车位宽裕 翰河园北坞嘉园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '20000', 'title': '(新出)碧水云天南北3居室,精装修,可配家电家具,可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6500', 'title': '可住员工宿舍 海淀西钓鱼台 西翠路 定慧东里精装大两居可月付'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '19000', 'title': '万柳碧水云天 高层三居室 有钥匙 不临街 带车位'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '32000', 'title': '中关村大街科技会展中心近北三环 临4号 有车位 可办公有钥匙'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6000', 'title': '首月减600 实房实价 旱河路 益园 杏石口路 火星时代'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '18000', 'title': '西三环 公主坟 万寿路 四居室 明卫 带车位 紧邻玉渊潭公园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5900', 'title': '正规一居室,房东人好 家具家电齐全 步行200米公交站'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4500', 'title': '西三环 公主坟 翠微中里新出精装修一居室 有钥匙'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '37500', 'title': '写字楼,800平米出租,可分割,免费车位,现成办工桌'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '45000', 'title': '公主坟 玉渊潭 缘溪堂 南北大平层 精装修 可办 公 做接待'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5600', 'title': '公主坟 万寿路 西钓鱼台10号线 翠微北里 正规电梯大一居'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7500', 'title': '装修好两居室,新社区,加点齐全,六道口768财富中心学清嘉创'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6500', 'title': '清华附中西北小区精装正规大一居家具齐全可租到高考结束随时看房'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6900', 'title': '厂洼理工大学 魏公村小南庄外国语大学 温馨两居可当三居用'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '60000', 'title': '西山美墅馆 檀香山 500万 装修 会所 接待'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5600', 'title': '田村京粮广场五路居地铁家乐福'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1080', 'title': '单间 独卫 告别合租 告别隔 断 整租一室 精装修 拎包入'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '19000', 'title': '万泉新新 带40平小院!南北通透三居可租5年保养好家电家具齐'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '8500', 'title': '知春路地铁站旁边,碧兴园东向80平米一居室 可居家办公'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '15000', 'title': '光大花园大三居 可办公 长租5年 使用空间足 随时起租有钥匙'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '12900', 'title': '万寿路地铁 150平复式 大三居室 万寿路28号院'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4600', 'title': '新上 地铁10号线 车道沟站 曙光花园 农林科学院 精装修'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1300', 'title': '西北旺韩家川北站酒店式公寓单间出租设施齐全实墙交通购物方便'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '10100', 'title': '白石桥南 增光佳苑 新房两居室 随时看房 可配齐 可长租3年'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '24000', 'title': '(新出)万泉新新家园精装3居室,保养好,家电家具齐全,可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4050', 'title': '北京贝客公寓 直租 家电齐全 独门独户 独栋 免费健身'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5700', 'title': '清河 清润家园 高层电梯两居室 可长租可'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6200', 'title': '兰德华庭两居室带车位地铁田村站'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '900', 'title': '在上地找房难,不想合租那你看这里。整租酒店式公寓独立卫生间'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '万寿路地铁附近 翠微路 公主坟 两居室看房随时'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '20000', 'title': '有钥匙一层带花园 三居室出租 装修好 保养好一定要看车位'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '800', 'title': '西二旗 智学苑 这么便宜的房子 难道不是你希望的吗 赶紧!'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '9300', 'title': '华润橡树湾(一期) 2室1厅1卫'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5800', 'title': '西三环蓟门桥西明光北里对面蓟门里小区精装修正规两居室'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5900', 'title': '魔方公寓 住半年免3000 可月付 魏公村 拎包入住 精装'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '60000', 'title': '(新出)万柳书院精装修3居室,家电家具全齐,拎包即住,可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '五路居地铁口西木小区2层两居室出租随时看房入住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7500', 'title': '皂君东里 财经大学 交大附中精装两居室出租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '21500', 'title': '海淀万柳光大水墨精装南北三居,家电齐全,带车位'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '70000', 'title': '(新出)万城华府1层带花园平层5居,精装修,家电家具全齐'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '3800', 'title': '白锥子 甘家口 增光路 劳动学院 精装修一居室 实拍照片'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6200', 'title': '公主坟地铁以西200米精装修二居室业主急租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6800', 'title': '地铁慈寿寺 精装二居五福玲珑居 美丽园 金雅园 金庄1号'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1800', 'title': '精装修 押一付一 地铁16号温阳路 稻香湖路 永丰 柳林村'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '20000', 'title': '(新出)万泉新新家园南北3居,一层带花园,带车位,可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '19000', 'title': '整租万柳万泉新新精装三居 南北通透 带车位大花园 可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6000', 'title': '知春路地铁站旁碧兴园太月园锦秋家园旁罗庄西里精装修正规两居室'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1300', 'title': '西北旺韩家川路公寓酒店式单间带厨卫拎包入住接受押一付一安全'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1300', 'title': '韩家川北站酒店式公寓单间出租多间可选设施齐全实墙交通购物方便'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '25000', 'title': '装修好的别墅 家具家电都有 带南花园 楼间距比较大 环境好'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '75000', 'title': '万柳书院 31户型 南北通透 有钥匙车位储藏间 随时入住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '46000', 'title': '万泉新新家园 顶层复式 业主诚心出租 看房随时 三年起租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '永金里 两居 家电齐全 看房下午'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '西直门首钢国际桔子酒店低楼层精装一居室有钥匙随时看房拎包住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7000', 'title': '清华大学公寓楼 精装大一居 家具家电齐全 随时入住 可长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5000', 'title': '军博,北蜂窝,会城门,57中,铁东小区新上精装一居,看房随时'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1500', 'title': '房东直租 正规小区 独门独户 一室一卫 家电齐全 拎包入住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7300', 'title': '学院路,八家嘉园,逸成东苑,城华园,精装2居室,业主出租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4600', 'title': '上地 安宁庄 当代城市家园 精装开间 随时看房 随时入住'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7800', 'title': '世纪城万柳中关村苏州桥 远大园六区 南北通透两居室'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '3600', 'title': '建设部大院 3室1厅'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '11900', 'title': '颐慧佳园 2室2厅2卫'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '16000', 'title': '清华北大 附幼附小 华清嘉园 蓝旗营精装三居室 居家长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '1100', 'title': '个人直租 整租房 租金低 独立卫浴'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5100', 'title': '地震局宿舍 航天医院 玉泉路地铁 两居室家电齐全免押金随时看'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '12000', 'title': '人大陪读 居家装修 万柳世纪城好房 紧靠地铁10号线 随时看'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '9000', 'title': '军博 羊坊店 新华社 有色院 恩菲旁 两居 全齐长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '强佑清河新城丨一居朝南丨丨五彩城丨小米总参丨人民医院'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7700', 'title': '航天桥 阜成路8号院 海淀实验小学 海总旁精装南北2居 长租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '13500', 'title': '中关村三小北校区 十号线巴沟 美中宜和 碧水云天 涧桥泊屋'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5200', 'title': '美丽园金雅园曙光花园颐慧佳园五福玲珑居地铁6 10 号线'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '5500', 'title': '五道口清华大学 八家嘉苑正规一居 看房方便 逸成东苑学清嘉创'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6500', 'title': '永泰东里精装修三居室 拎包入住 临近永泰庄地铁 随时看'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '6500', 'title': '建材城西路27号 1室1厅1卫'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4800', 'title': '柳浪家园 精装一居 业主直签 电梯入户 随时看 临近紫成嘉园'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '7000', 'title': '五道口 清华 八家嘉苑 精装大两居 可合租'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '9000', 'title': '五道口清华东门 红杉国际 一居室业主自用婚房底价了抓紧联系'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '4000', 'title': '大牛坊颐丰庄园0中介随时看房永丰基地地铁永丰站用友新材料大厦'}
zufang pipelines
2018-12-18 22:28:44 [scrapy.core.scraper] DEBUG: Scraped from <200 http://bj.ganji.com/wblist/haidian/zufang/>
{'money': '11500', 'title': '中关村二小旁 科源 中关园 科育 东南小区精装三居室老业主租'}
2018-12-18 22:28:44 [scrapy.core.engine] INFO: Closing spider (finished)
2018-12-18 22:28:44 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 460,
'downloader/request_count': 2,
'downloader/request_method_count/GET': 2,
'downloader/response_bytes': 45270,
'downloader/response_count': 2,
'downloader/response_status_count/200': 2,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2018, 12, 18, 14, 28, 44, 912665),
'item_scraped_count': 113,
'log_count/DEBUG': 116,
'log_count/INFO': 7,
'memusage/max': 67166208,
'memusage/startup': 67166208,
'response_received_count': 2,
'scheduler/dequeued': 1,
'scheduler/dequeued/memory': 1,
'scheduler/enqueued': 1,
'scheduler/enqueued/memory': 1,
'start_time': datetime.datetime(2018, 12, 18, 14, 28, 43, 625826)}
2018-12-18 22:28:44 [scrapy.core.engine] INFO: Spider closed (finished)
直到以上结果,我们仅仅完成了管道前面部分的设置工作。先不要着急,我们把前面的部分梳理一下。
步骤
- cd 到目标目录 然后创建项目
scrapy startproject + 项目名
- Pycharm打开项目名,然后在spiders目录下创建你想要的py文件,例如
ganji.py
。
在这个文件里要import scrapy
,再然后定义一个父类为scrapy.Spider
的子类,诸如class GanjiSpider(scrapy.Spider):
,类中定义name
(字符串)和start_urls
(元素为网址字符串的列表)。 - 打开items.py,在大类下面传入设置你要传入的变量= scrapy.field。
import scrapy
class My1StProjectItem(scrapy.Item):
变量1 = scrapy.Field()
变量2 = scrapy.Field()
- 在settings.py中将ITEMS_PIPELINES行的字典去掉注释,添加
项目名.pipelines.类名
并设置优先级。 - 在ganji.py下导入items中的类
from ..items import My1StProjectItem
在start_urls
下面定义parse(self,response)
方法:
将response中的元素抽取出来生成列表。
将items中的类实例化给zf。
用zip函数挨个取出来赋给zf['变量1'],zf['变量2']……再yield
例如:
def parse(self, response):
#print(response) 仅供测试用
zf = My1StProjectItem()
title_list = response.xpath('.//div[@class="f-list-item ershoufang-list"]//dd[@class="dd-item title"]/a/text()').extract()
money_list = response.xpath('.//span[@class="num"]/text()').extract()
for i,j in zip(title_list,money_list):
zf['title'] = i
zf['money'] = j
yield zf
#print(i,":",j)
- 在pipeline.py中把
process_item(self, item, spider)
中的函数体重要怎么处理数据给规定好。
过程就已经通了。下一步看看这么通过pipeline把数据插入到数据库中来。
import pymysql
class My1StProjectPipeline(object):
def open_spider(self,spider):
self.con = pymysql.connect(host ='localhost',user = 'root',password = 'qwertyuiop',port = 3306,db = 'zufang')
self.cu = self.con.cursor()
def process_item(self, item, spider):
print(spider.name,'pipelines')
#insert_sql = f"INSERT INTO zufang (title,money) VALUES('{item['title']}','{item['money']}')"
insert_sql = "INSERT INTO zufang (title,money) VALUES('{}', '{}')".format(item['title'],item['money'])
self.cu.execute(insert_sql)
self.con.commit()
return item
def spider_close(self,spider):
self.con.close()
相关知识点整理:
pipelines.py类结构解析