我制作了一只抓痒的蜘蛛,观看了一些在线视频。它从网站上抓取个人资料网址。我想将此范围扩展到从每个抓取的个人资料网址中抓取数据,例如地址,名称,电话,网站网址。
我当时正在考虑将刮板分开。一种用于抓取个人资料网址。第二个是从被抓取的第一个URL抓取数据。
还有其他解决方法吗?
这是我的蜘蛛,它抓取个人资料网址。
# -*- coding: utf-8 -*-
import scrapy
from ..items import ...scraperItem
class SpiderSpider(scrapy.Spider):
name = 'spider'
start_urls = ['https:// ...']
page_number = 15
def parse(self, response):
items=...scraperItem()
..._url=response.css('a.header-5.text-unbold ::attr(href)').extract_first()
items['..._url']= ..._url
yield items
next_page = 'https:/...'+str(...SpiderSpider.page_number)
if ...SpiderSpider.page_number <= 150:
...SpiderSpider.page_number += 15
yield response.follow(next_page, callback = self.parse)
答案 0 :(得分:0)
您可以添加另一个解析方法(例如parse_profile
)来抓取其他数据。例如
def parse(self, response):
url = response.css('a.header-5.text-unbold ::attr(href)').extract_first()
yield response.follow(url, callback=self.parse_profile)
# next_page = ...
if self.page_number <= 150:
self.page_number += 15
yield response.follow(next_page, callback=self.parse)
def parse_profile(self, response)
item = HouzzscraperItem()
item['houzz_url'] = response.url
# item['address'] = ...
# item['name'] = ...
# item['phone'] = ...
yield item