需要关于如何从一个页面获取链接的scrapy示例,然后按照此链接,从链接页面获取更多信息,并与第一页的某些数据合并。

===============>>#1 票数:15 已采纳

在第一页上部分填写您的项目,并将其放入您的请求的元数据中。 当调用下一页的回调时,它可以获取部分填充的请求,将更多数据放入其中,然后返回它。

===============>>#2 票数:7

有关传递meta数据和请求对象的更多信息,请参阅本文档的这一部分:

http://readthedocs.org/docs/scrapy/en/latest/topics/request-response.html#passing-additional-data-to-callback-functions

此问题还与以下内容有关: Scrapy:关注链接以获取更多项目数据?

===============>>#3 票数:5

scrapy documntation的一个例子

def parse_page1(self, response):
    item = MyItem()
    item['main_url'] = response.url
    request = scrapy.Request("http://www.example.com/some_page.html",
                         callback=self.parse_page2)
    request.meta['item'] = item
    return request

def parse_page2(self, response):
    item = response.meta['item']
    item['other_url'] = response.url
    return item

===============>>#4 票数:2

Scrapy文档代码的一点说明

def start_requests(self):
        yield scrapy.Request("http://www.example.com/main_page.html",callback=parse_page1)
def parse_page1(self, response):
    item = MyItem()
    item['main_url'] = response.url ##extracts http://www.example.com/main_page.html
    request = scrapy.Request("http://www.example.com/some_page.html",callback=self.parse_page2)
    request.meta['my_meta_item'] = item ## passing item in the meta dictionary
    ##alternatively you can follow as below
    ##request = scrapy.Request("http://www.example.com/some_page.html",meta={'my_meta_item':item},callback=self.parse_page2)
    return request

def parse_page2(self, response):
    item = response.meta['my_meta_item']
    item['other_url'] = response.url ##extracts http://www.example.com/some_page.html
    return item

  ask by Jas translate from so

未解决问题?本站智能推荐:

1回复

需要使用scrapy提取子页面的内容

我对刮板还算陌生,但是已经为我准备了一些简单的刮板。 我试图通过从一个页面获取所有链接并抓取子页面的内容来进入下一个层次。 我已经阅读了一些不同的示例和问答,但似乎无法使这段代码对我有用。
2回复

如何在scrapy页面的html中找到动态ID

我正在尝试获取html标签的动态创建ID的文本。 我有办法得到它。 代码是: 这里id="old-price-8886"是动态ID。 在该ID中, "old-price-****"对于所有price类别都是静态的。 我需要从中获得৳300价值。
1回复

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

我想设置Scrapy Python库,以便它遍历所有http://www.domain.com/classifieds/something/?pg=<page>页面,对于<page>从1 to 200 ,收集所有的URL形式为http://www.domain.com/cla
1回复

Python Scrapy-无法获得特定页面的任何内容

我正在尝试从offerup.com刮取一些信息,在刮擦的外壳上 ,什么都没有发生。 我将输入: scrapy shell https://offerup.com/ 它会去那里,但是然后,如果我只是尝试使用以下方法获取整个网页的文本: response.xpath('//te
1回复

如何按照链接列表从scrapy中的页面获取数据?

我有一个网页要刮。 在页面上,是<table>中的链接列表。 我正在尝试使用规则部分来请求Scrapy浏览链接,并获取链接所针对的页面上的数据。 以下是我的代码: 我的问题是Scrapy没有关注链接。 它只是尝试从该链接提取数据的链接。 我错过了什么? 更新#
2回复

硒与scrapy的动态页面

我正在尝试使用scrapy从网页上抓取产品信息。 我的待抓取网页看起来像这样: 从包含10个产品的product_list页面开始 单击“下一步”按钮将加载下10个产品(两个页面之间的网址不变) 我使用LinkExtractor跟随每个产品链接进入产品页面,并获取我需
1回复

使用Scrapy抓取多个页面

目的 用Scrapy和Python制作一个两层的深层Web爬虫。 问题 该网站的结构为1页,爬网程序大约在10个项目中跟踪链接并提取正确的数据。 问题在于该结构是10页的递归结构,但是最后一页的链接已更改,并且注意直接指向home1,但是指向home2。 对于第2页到第10
1回复

如何用scrapy解析多个页面

我不断收到错误消息:语法无效 而且我似乎无法弄清楚为什么会给我该错误,因为据我所知,它与所有其他1.add_xpath()方法的语法相同。 我的另一个问题是如何请求其他页面。 基本上,我正在浏览一个大页面,并使其通过页面上的每个链接,然后在完成页面后,我希望它转到下一个大页面的下一个
1回复

使用scrapy从无限滚动页面中删除数据?

向下滚动时的响应URL为: https://dir.dummymart.com/impcat/next?mcatId=20467&prod_serv=P&mcatName=laser-cutting-machines&srt=97&end=116&i
1回复

Scrapy - 动态等待页面加载 - selenium + scrapy

我最近用python和Selenium创建了一个webscraper,我发现它很简单。 该页面使用ajax调用来加载数据,最初我等待一个固定的time_out来加载页面。 这工作了一段时间。 之后,我发现selenium有一个内置函数,WebDriverWait可以使用wait.until