这个问题在某种程度上是我之前提出的this问题的后续问题。
我正在尝试搜索包含第一页上某些链接的网站。与this类似的东西。
现在,由于我想要抓取页面上显示的项目的详细信息,我已经提取了各自的网址。
我已将这些网址保存在列表中。
如何启动蜘蛛单独刮取页面?
为了更好地理解:
[urlA, urlB, urlC, urlD...]
这是我抓取的网址列表。现在我想发射一个蜘蛛来单独刮掉链接。
我该怎么做?
答案 0 :(得分:2)
我假设您要关注的网址会导致具有相同或相似结构的网页。如果是这种情况,你应该这样做:
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import Selector
from scrapy.http import Request
class YourCrawler(CrawlSpider):
name = 'yourCrawler'
allowed_domains = 'domain.com'
start_urls = ["htttp://www.domain.com/example/url"]
def parse(self, response):
#parse any elements you need from the start_urls and, optionally, store them as Items.
# See http://doc.scrapy.org/en/latest/topics/items.html
s = Selector(response)
urls = s.xpath('//div[@id="example"]//a/@href').extract()
for url in urls:
yield Request(url, callback=self.parse_following_urls, dont_filter=True)
def parse_following_urls(self, response):
#Parsing rules go here
否则,如果您想要关注的网址指向具有不同结构的网页,那么您可以为它们定义特定的方法(例如parse1,parse2,parse3 ......)。