记录python的scrapy爬虫——房天下!

本文详细介绍了在Windows10系统中如何部署Python的Scrapy爬虫框架,包括安装Visual C++ Build Tools、pywin32、创建虚拟环境Virtualenv以及安装Twisted和Scrapy。同时,还提供了抓取房天下网站房源信息的实例,涉及到项目创建、items定义、pipelines设置和User-Agent的随机化。
摘要由CSDN通过智能技术生成
  • scrapy框架在windows10系统中的部署
  1. 安装Visual C++ Build Tools

由于在Scrapy的依赖文件库中,pywin32和Twisted的底层是基于C语言开发的,因此需要安装C语言的编译环境。 对于python3.6来说,可以通过安装Visual C++ Build Tools来安装这个环境。下载地址为:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=152

2.安装pywin32

Python资源共享群:484031800

在Windows系统中搭建Scrapy的环境,有两个第三方库不能用常规方法安装,一个是lxml,另外一个就是pywin32。这两个第三方库都不建议使用pip命令安装,均可以采用.exe安装包进行安装。

3.创建虚拟环境Virtualenv

由于在之后的Twisted和Scrapy安装中,会附带安装大量的依赖库,而这些库仅在Scrapy中会用到,平常的开发中几乎不会用。所以把他们安装到系统中会,会导致python系统的混乱,而且发布爬虫时,也不便于导出涉及的依赖库文件。

因此我们使用Virtualenv创建一个虚拟的python环境来安装Scrapy剩下的部分。

Virtualenv是Python的一个第三方库,使用它可以创造Python的虚拟环境。使用普通方法就可以安装Virtualenv:

pip install virtualenv

要让Virtualenv使用系统Python环境下的第三方库,就需要在CMD中使用下面的命令来创建虚拟环境:

virtualenv --always-copy --system-site-packages venv

创建虚拟环境后,可以使用以下的命令来激活虚拟环境:

venv\scripts\avtivate

不要关闭这个窗口,接下来的所有操作都要在这里进行。

4.安装Twisted和Scrapy

在刚才的窗口中使用pip命令进行安装即可,分别是:

pip install twisted

pip install scrapy

  • 抓取房天下网站房源信息实例

网站url分析

1.获取所有城市url
   http://www.fang.com/SoufunFamily.htm
    例如:http://cq.fang.com/
2.新房url
  http://newhouse.sh.fang.com/house/s/
3.二手房url
  http://esf.sh.fang.com/
4.北京新房和二手房url规则不同
   http://newhouse.fang.com/house/s/
   http://esf.fang.com/复制代码

创建项目

在刚才的CMD中输入以下命令

scrapy startproject fang
scrapy genspider sfw_spider "fang.com"复制代码

sfw_spider.py

# -*- coding: utf-8 -*-
import scrapy
import re
from fang.items import NewHouseItem,ESFHouseItem
class SfwSpiderSpider(scrapy.Spider):
    name = 'sfw_spider'
    allowed_domains = ['fang.com']
    start_urls = ['http://www.fang.com/SoufunFamily.htm']
    def parse(self, response):
        trs = response.xpath("//div[@class='outCont']//tr")
        provice = None
        for tr in trs:
            #排除掉第一个td,两个第二个和第三个td标签
            tds = tr.xpath(".//td[not(@class)]")
            provice_td = tds[0]
            provice_text = provice_td.xpath(".//text()").get()
            #如果第二个td里面是空值&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值