某家简单爬虫记录

定义爬取数据

import scrapy

class LianjianItem(scrapy.Item):
    name = scrapy.Field()
    address = scrapy.Field()
    type = scrapy.Field()
    size = scrapy.Field()
    price = scrapy.Field()

编写爬虫文件

# -*- coding: utf-8 -*-
import scrapy
from lianjian.items import LianjianItem
from scrapy.http import Request

class LianjiaspiderSpider(scrapy.Spider):
    name = ‘lianjiaSpider‘
    allowed_domains = [‘lianjia.com‘]
    start_urls = [‘https://hz.fang.lianjia.com/loupan/yuhang-xiaoshan-binjiang/pg1/‘]

    def parse(self, response):
        item = LianjianItem()
        item[‘name‘] = response.xpath(‘//div[@class="resblock-name"]/a/text()‘).extract()
        item[‘address‘] = response.xpath(‘//div[@class="resblock-location"]/a/text()‘).extract()
        item[‘type‘] = response.xpath(‘//a[@class="resblock-room"]/span/text()‘).extract()
        item[‘size‘] = response.xpath(‘//div[@class="resblock-area"]/span/text()‘).extract()
        item[‘price‘] =response.xpath(‘//div[@class="resblock-price"]/div[@class="second"]/text()‘).extract()
        yield item
        for i in range(1,52):
            url = ‘https://hz.fang.lianjia.com/loupan/yuhang-xiaoshan-binjiang/pg‘+str(i)+‘/‘
            yield Request(url,callback=self.parse)

定义管道

编写管道文件

# -*- coding: utf-8 -*-

import xlwt
import xlrd

class LianjianPipeline(object):
    def __init__(self):
        pass

    def process_item(self, item, spider):
        # print("进来了"+str(item))
        line = 0
        for i in range(len(item[‘name‘])):
            name = item[‘name‘][i]
            # self.sheet.write(line,0,name)
            print(name)
            address = item[‘address‘][i]
            print(address)
            # self.sheet.write(line,1,address)
            type = item[‘type‘][i]
            print(type)
            # self.sheet.write(line, 2, type)
            size = item[‘size‘][i]
            print(size)
            # self.sheet.write(line, 3, size)
            price = item[‘price‘][i]
            print(price)
            # self.sheet.write(line, 4, price)
            print("-----------------------")
            line += 1
        # self.book.save("lianjia.xls")
        return item

settings.py开启管道

ITEM_PIPELINES = {
   ‘lianjian.pipelines.LianjianPipeline‘: 300,
}

启动爬虫文件

原文地址:https://www.cnblogs.com/yiweiblog/p/12652493.html

时间: 2024-08-04 21:35:47

某家简单爬虫记录的相关文章

python scrapy简单爬虫记录(实现简单爬取知乎)

之前写了个scrapy的学习记录,只是简单的介绍了下scrapy的一些内容,并没有实际的例子,现在开始记录例子 使用的环境是python2.7, scrapy1.2.0 首先创建项目 在要建立项目的目录下执行命令scrapy startproject tutorial scrapy会帮你建立好项目,接着创建蜘蛛scrapy genspider zhuhuSpider zhihu.com 当前的文件结构是 --tutorial --spiders --__init__.py --zhihuSpid

python简单爬虫

爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习过程写写吧. 一  正则表达式 正则表达式是一个很强大的工具了,众多的语法规则,我在爬虫中常用的有: . 匹配任意字符(换行符除外) * 匹配前一个字符0或无限次 ? 匹配前一个字符0或1次 .* 贪心算法 .*? 非贪心算法 (.*?) 将匹配到的括号中的结果输出 \d 匹配数字 re.S 使得.

零基础简单爬虫制作(以wjyt-china企业黄页爬虫为例)(上)

零.前言 本教程面向毫无编程基础的人群,讲述制作出爬虫所需要的最基本知识.目标是让你就算阅读代码如天书,凭借基本知识,复制代码以及使用搜索引擎也可以制作出可用的爬虫. 同时,本教程也是对笔者本人凭借基本知识,复制代码以及使用搜索引擎制作出可用爬虫的快速学习经历的总结归纳. 再同时,本教程也希望分享给读者三条快速学习哲学: 1.寻找趣味,保持专注.兴趣是最好的老师,发掘兴趣是最强的能力. 2.容忍无知,聚焦实用.在缺乏系统性知识的情况下,要快速涉猎不熟悉的领域并做出成果,需要控制知识与无知的平衡,

爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)

这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string> todo :进行抓取的网址的集合 List<string> visited :已经访问过的网址的集合 下面实现的是,给定一个初始地址,然后进行爬虫,输出正在访问的网址和已经访问的网页的个数. 需要注意的是,下面代码实现的链接匹配页面的内容如图一.图二所示: 图一: 图二: 简单代码示范如下:

[编程题] 简单错误记录

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加:(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符:(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件可能带路径,记录文件名称不能带路径 输入描述: 一行或多行字符串.每行包括带路径文件名称,行号,以空格隔开. 文件路径为window

Settings app简单学习记录

Settings是android系统设置的入口.主界面由Settings.java以及settings_headers.xml构成. Settings类继承自PreferenceActivity,而PreferenceActivity又继承自ListActivity,ListActivity拥有ListView和ListAdapter类型的成员变量. 1,如何使用PreferenceActivity构建页面 使用addPreferencesFromIntent或者addPreferencesFr

27:简单错误记录SimpleErrorLog

题目描述 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理: 1. 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加: 2. 超过16个字符的文件名称,只记录文件的最后有效16个字符: 3. 输入的文件可能带路径,记录文件名称不能带路径. 输入描述:一行或多行字符串.每行包括带路径文件名称,行号,以空格隔开. 输出描述:将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如: 输入例子: E:

[Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图

  第一篇文章,就从一个简单爬虫开始吧. 这只虫子的功能很简单,抓取到”煎蛋网xxoo”网页(http://jandan.net/ooxx/page-1537),解析出其中的妹子图,保存至本地. 先放结果: 从程序来讲,步骤分为三步: 1.发起一个http请求,获取返回的response内容: 2.解析内容,分离出有效图片的url: 3.根据这些图片的url,生成图片保存至本地. 开始详细说明: 准备工作:HttpClient的Jar包,访问http://hc.apache.org/   自行下

php简单日志记录脚本

自己的站点经常被搜索引擎爬到,想知道搜索引擎和来访者都对哪些内容比较感兴趣,于是写了一个简单的日志记录"系统",来记录来访者的信息. 分为三个文件,record.php,log.php,conn.php conn.php是数据库连接文件,调用该文件返回一个mysql的数据库读写接口: log.php是后台,可以从这里看到记录在数据库中的内容: record.php是记录访客用的脚本,在任意页面包含该脚本,即可实现对于来访者的记录. 代码如下: conn.php: <?php #c