从正在抓取的页面上的链接中检索信息

时间:2017-10-03 10:38:14

标签: python scrapy hdf5

我正在使用python 3.5上的scrapy构建一个刮刀。

我正在人群资助论坛中抓取项目并将数据保存在hdf5文件中。

通过读取网址列表来完成对项目的刮擦,这些网址被抓取,然后将每个项目的信息保存为表格行(具有多列)。这是我的脚本的顶部:

class ExperimentScraperSpider(scrapy.Spider):
    name = 'project_scraper'
    allowed_domains = ['projectname.com']

    dt = pd.read_csv("urls.csv") #list of urls
    start_urls = dt["url"].tolist()

    def parse(self, response):

        title = response.css('h1.title::text').extract_first() #name of project
        tags = response.css('a.tag.category::text').extract() #project tags

        ...

不幸的是,一些项目信息被放置在子链接中(例如...... /方法)。我想将此链接中的信息与项目中的其他信息一起提供到hdf5文件的同一行。怎么办呢?

我可以在我已经使用的解析器中构建一个解析器吗?

1 个答案:

答案 0 :(得分:1)

一种方法是使用requests chaining方法。在这里,您可以从后续页面收集数据,并在Request s meta属性中传递临时数据,直到您最终生成完整项目。

另一种方法是使用scrapy-inline-requests库。在这里,您可以将临时数据提取合并到主解析方法中。