如何抓取一些数据+链接的列表并获取这些链接数据

时间:2019-10-18 19:52:29

标签: python-3.x scrapy

我正在为正在处理的网页设置PDF数据库,我需要抓取类似于以下词典列表的网页:

  1. 字典1
    • 名称:Alice
    • 姓:史密斯
    • 更多信息:地址1
    • 信息:(www.url.com)->我需要点击此链接,解析其内容并将信息添加到此字典中
  2. 字典2
    • 名称:Bob
    • 姓氏:套袋
    • 更多信息:地址
    • 信息:(www.url.com)->我需要点击此链接,解析其内容并将信息添加到此字典中
  3. 字典 n
    • 名称:名称
    • 姓:姓
    • 更多信息:地址
    • 信息:(www.url.com)->我需要点击此链接,解析其内容并将信息添加到此字典中

依此类推。我该如何使用scrapy?

import scrapy

class SpiderDoesThings(scrapy.Spider):
    name = 'my_name'
    start_urls = [my_urls]

def parse(self, response):
    for item in response.css(filter1):
        link = item.css(filter2)
        meta_data = {
            'name': item.css(filter3)
        }
        yield scrapy.Request(url=link, callback=self.parse_additionalinfo, meta=meta_data)

def parse_additionalinfo(self, response):
    response.meta.update({'mynewinfo': response.css(filter4)
    yield response.meta

该代码仅返回列表的第一个字典:

  1. 字典1
    • 名称:Alice
    • 姓氏:...
    • 更多信息:...
    • 信息:(链接)->我需要点击此链接并将信息添加到此字典中

我尝试添加“ no-filter = True”,它爬网了列表的其余部分,但它一直在爬网相同的附加信息。不过,“名称”,“姓氏”和“更多信息”是正确的。像这样:

  1. 字典1
    • 名称:Alice
    • 姓:史密斯
    • 更多信息:地址1
    • 信息:parsed_info1
  2. 字典2
    • 名称:Bob
    • 姓氏:套袋
    • 更多信息:地址
    • 信息:parsed_info1
  3. 字典 n
    • 名称:名称
    • 姓:姓
    • 更多信息:地址
    • 信息:parsed_info1

0 个答案:

没有答案