Web crawler 如何抓取分类网站

Web crawler 如何抓取分类网站,web-crawler,scrapy,scrapy-spider,Web Crawler,Scrapy,Scrapy Spider,我正试图用Scrapy编写一个爬虫程序来爬网一个分类类型(目标)站点,并从目标站点上的链接获取信息。上的教程只帮助我从目标URL获取链接,而不是我所寻求的第二层数据收集。有线索吗 例如,目标站点将是: start_url = "http://newyork.craigslist.org/search/cta" 对于目标网站上的所有链接,我想进入每个列表,获取价格、卖家、位置、电话或电子邮件到目前为止你做了什么?嗨,詹姆斯。我们试图鼓励这里的新用户(嗯,每个人都是如此)展示他们的研究成果。我希望

我正试图用Scrapy编写一个爬虫程序来爬网一个分类类型(目标)站点,并从目标站点上的链接获取信息。上的教程只帮助我从目标URL获取链接,而不是我所寻求的第二层数据收集。有线索吗

例如,目标站点将是:

start_url = "http://newyork.craigslist.org/search/cta"

对于目标网站上的所有链接,我想进入每个列表,获取价格、卖家、位置、电话或电子邮件

到目前为止你做了什么?嗨,詹姆斯。我们试图鼓励这里的新用户(嗯,每个人都是如此)展示他们的研究成果。我希望如果你在这里、GitHub和web上搜索,你会发现CraigsList的刮板。但是,请记住CraigsList公司可能对scraper持悲观态度,因为运行scraper是为了免费获取其他人花费大量时间和金钱收集的数据。至少你需要在擦伤之间暂停一下,如果这是CraigLists的决定,你可以接受被IP阻止。谢谢John的帮助。成功了!
import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import Selector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from urlparse import urljoin


class CompItem(scrapy.Item):
    name = scrapy.Field()
    price = scrapy.Field()
    location = scrapy.Field()




class criticspider(CrawlSpider):
    name = "craig"
    allowed_domains = ["newyork.craigslist.org"]
    start_urls = ["http://newyork.craigslist.org/search/cta"]


    def parse(self, response):
        sites = response.xpath('//div[@class="content"]')
        items = []

        for site in sites:
            item = CompItem()
            item['name'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="pl"]/a/text()').extract().
            item['price'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="l2"]/span[@class="price"]/text()').extract()
            item['location'] = site.xpath('.//p[@class="row"]/span[@class="txt"]/span[@class="l2"]/span[@class="pnr"]/small/text()').extract()
            items.append(item)
            return items