如何通过Scrapy获取分页页面的内容

时间:2015-03-23 20:07:10

标签: python web-scraping scrapy python-requests

我想设置Scrapy Python库,使其遍历所有http://www.domain.com/classifieds/something/?pg=<page>个网页,<page>来自1 to 200,收集所有形式的网址{{ 1}},其中http://www.domain.com/classifieds/something/view/<number>/是一个长数字,最后通过<number> Python库检索那些urls的html代码?

1 个答案:

答案 0 :(得分:0)

定义CrawlSpider。在start_requests内启动请求,并定义RuleLinkExtractor指向classifieds/something/view/<number>/链接格式:

import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor

class MySpider(CrawlSpider):
    allowed_domains = ['www.domain.com']

    rules = [
        Rule(LinkExtractor(allow=r'classifieds/something/view/\d+/'), callback='parse_page')
    ]

    def start_requests(self):
        base_url = 'http://www.domain.com/classifieds/something/?pg='
        for page in xrange(1, 201):
            yield scrapy.Request(base_url + str(page))

    def parse_page(self, response):
        print response.body  # contains HTML code of the page

我在这里没有看到使用requests的重点,Scrapy本身可以处理您所描述的内容。