抓取增量爬网

2024-05-17 02:36:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究废网站。我只想提取那些在上一次运行中没有被刮取的项目。 我正在“https://www.ndtv.com/top-stories”网站上尝试,如果更新了,只提取第一个标题。

以下是我的代码:

import scrapy
from selenium import webdriver
from w3lib.url import url_query_parameter

class QuotesSpider(scrapy.Spider):
    name = "test"

    start_urls = [
       'https://www.ndtv.com/top-stories',
    ]

    def parse(self, response):
       print ('testing')
       print(response.url)

       yield {
            'heading': response.css('div.nstory_header    a::text').extract_first(),

        }
DOWNLOADER_MIDDLEWARES = {
    'scrapy_crawl_once.CrawlOnceMiddleware': 100,
}
SPIDER_MIDDLEWARES = {
    #'inc_crawling.middlewares.IncCrawlingSpiderMiddleware': 543,
    'scrapy.contrib.spidermiddleware.referer.RefererMiddleware': True,
    'scrapy_deltafetch.DeltaFetch': 100,
    'scrapy_crawl_once.CrawlOnceMiddleware': 100,
    'scrapylib.deltafetch.DeltaFetch': 100,
    'inc_crawling.middlewares.deltafetch.DeltaFetch': 100,
}
COOKIES_ENABLED = True
COOKIES_DEBUG = True
DELTAFETCH_ENABLED = True
DELTAFETCH_DIR = '/home/administrator/apps/inc_crawling'
DOTSCRAPY_ENABLED = True

我已经在中更新了上面的代码设置.py文件:

我使用“scrapy crawl test-o”运行上述代码测试.json然后在每个文件之后运行.db命令测试.json更新文件。

所以,我的期望是只要第一个标题被更新,然后.db才会更新。

请帮助我,如果有任何更好的方法来提取更新的标题。


Tags: 文件代码importtrueurl标题网站response
1条回答
网友
1楼 · 发布于 2024-05-17 02:36:14

实现这一点的一个好方法是在执行实际请求之前重写^{}来检查数据库。在

Scrapy使用dupefilter类避免两次获得相同的请求,但它只适用于运行spider的。在

相关问题 更多 >