Scrapy: предотвращение сохранения данных и загрязнения перекрестных запросовPython

Программы на Python
Ответить
Anonymous
 Scrapy: предотвращение сохранения данных и загрязнения перекрестных запросов

Сообщение Anonymous »

Введение
Я отредактировал сообщение, чтобы упростить и уточнить содержание, и включил предложенные решения.

Все проблемы были решены с помощью задержек загрузки и дублирующего фильтра. (как предложил @wRAR).

Однако с включенной задержкой загрузки процесс теперь занимает 20 минут вместо 1 минуты.

Есть ли альтернатива способ обеспечить согласованность данных без значительного увеличения во время выполнения?
Я использую Scrapy для сканирования страниц и извлечения данных в файл JSON, но сталкиваюсь с проблемами согласованности данных. В частности, в некоторых полях сохраняются или дублируются данные из предыдущих ответов, что приводит к неправильным значениям полей в выходных данных.
Код
  • Все URL-адреса сохранены в файле .txt, где каждый URL-адрес находится в отдельной строке.
  • Код определяет «элементы», которые необходимо извлечь.
  • Класс определяется с помощью CrawlSpider.
  • URL-адреса из файла .txt загружаются в список start_urls.
  • Каждый URL-адрес анализируется.

Код: Выделить всё

from scrapy.item import Item, Field
from scrapy.spiders import CrawlSpider, Rule
from scrapy.loader import ItemLoader
from scrapy.linkextractors import LinkExtractor
from fake_useragent import UserAgent

class Claselicitacion(Item):
objeto_contrato = Field()
presupuesto_base = Field()
url = Field()

class LicitacionCrawlSpider(CrawlSpider):
name = 'licitacion_crawl'
ua = UserAgent()
custom_settings = {
"REQUEST_FINGERPRINTER_IMPLEMENTATION": "2.7",
'USER_AGENT': ua.random,
#'USER_AGENT': 'Mozilla/5.0 (Macintosh;  Intel Mac OS X 13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEEDS': {
'2_ProjectFinder.json': {
'format': 'json',
'encoding': 'utf-8',
},
},
'HTTPCACHE_ENABLED': False,  # Disable caching
'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter',
#INCONSISTENCY IN NUMBER OF ITEMS SOLVED BY ADDING DUPEFILTER AS SUGGESTED BY @wRAR
'DOWNLOAD_DELAY': 2,  # Set a delay of 2 seconds between requests
'RANDOMIZE_DOWNLOAD_DELAY': True,  # Randomize the delay to make requests less predictable
#'CONCURRENT_REQUESTS':  1,  # Make one request at a time
}

with open('1_DeepLinks.txt', 'r') as file:
start_urls = [line.strip() for line in file if line.strip()]

rules = (
Rule(
LinkExtractor(allow=r'deeplink%3Adetalle_licitacion'),
callback='parse_item',
follow=False,
),
)

def parse_item(self, response):
item = ItemLoader(item=Claselicitacion(), response=response)

if response.xpath('//li[@id="fila4_columna2"]'):
item.add_xpath('objeto_contrato', '//li[@id="fila4_columna2"]//span[@class="outputText"]/text()')
else:
item.add_value('objeto_contrato', 'NO DATA FOUND')

if response.xpath('//li[@id="fila5_columna2"]'):
item.add_xpath('presupuesto_base', '//li[@id="fila5_columna2"]//span[@class="outputText"]/text()')
else:
item.add_value('presupuesto_base', 'NO DATA FOUND')

item.add_value('url',  r e s p o n s e . u r l ) < b r   / > < b r   / >                 y i e l d   i t e m . l o a d _ i t e m ( ) < b r   / > < / c o d e > < b r   / > < h 2 > . t x t - ф а й л < / h 2 > < b r   / > < c o d e > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = c A p M d j r n F x v k Y 6 r l s 5 t G 9 A % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = b P C 0 z 5 7 z E d T % 2 B 3 J A i j K O % 2 B k g % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = p 0 1 I Z Q B x n A 0 w Y T J J 0 3 s H o g % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = y w A d e h R W 0 1 i K e V W T b 9 S c o g % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = % 2 B L S R O 9 6 X % 2 B w A % 2 B k 2 o C b D o s I w % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = D e i 0 8 4 j N C c P 9 p b n D w l a U l g % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = k 6 K a k N % 2 B Z Y B M e I B J R H Q i P k Q % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o n d e l e s t a d o . e s / w p s / p o c ? u r i = d e e p l i n k : d e t a l l e _ l i c i t a c i o n & a m p ; i d E v l = H K % 2 F l A i b J X B w a F 6 c S 8 T C h % 2 F A % 3 D % 3 D < b r   / > h t t p s : / / c o n t r a t a c i o ndelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=RdyFawO%2B9o1xseVhcqrkhw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=vs5sDIcT4IJ%2FP7lJ7Fu0SA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=eCX0B1KHHnmKeVWTb9Scog%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=d2IhCu3FgMoaF6cS8TCh%2FA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=kDeiqJlZZ4l9PLkba5eRog%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=Kv59E6Ou73GkU02jNGj1Fw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=Klk6HCTpUR%2BP66GS%2BONYvQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=voH3FLNnAVWdkQsA7ROvsg%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=bYA8A476k368ebB%2FXTwy0A%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=l1WennZeqsx9PLkba5eRog%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=bR4siR3c8jc2wEhQbcAqug%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=UT49w505%2BJ0IYE3ZiZ%2BxmQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=5xBvPaU72OJPpzdqOdhuWg%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=DBYw2PHvQ1836J9Lctlsuw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=p9H459uP%2FRwZDGvgaZEVxQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=ac6Sy2Nw5ZvECtSnloz%2BZQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=CHIb93%2FPxJIeIBJRHQiPkQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=1253hczyXjSopEMYCmrbmw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=JGV3KkFBdVDE6P%2FuLemXRw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=Ybczh91UUkm7JOCXkOhcDg%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=kWrVjQJjT3N70UvEyYJSGw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=eBIlJKy0naW2gkLQ8TeYKA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=s4x6ayYZ0p2S81gZFETWmA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=vyFADvkBaL8%2B1TMyIiZmzw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=VNFIQXgMOP8eIBJRHQiPkQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=NeJBEfrP%2FzNVkTabT%2FRM8A%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=lIAcO4TA4DdJ8Trn0ZPzLw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=iUieCIzaBtl9Zh%2FyRJgM8w%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=r%2FoUMWAqF%2FIadbH3CysQuQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=5crGaOEWZb5t5r0ngvMetA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=eajD4ChSFXxxseVhcqrkhw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=lGyZLzj63IecTfjQf3USOg%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=QNSyrOmi0L0SugstABGr5A%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=8Ms%2FdQrWAjwBPRBxZ4nJ%2Fg%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=EzeNQiVn6SaXQV0WE7lYPw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=S2hoL5aAU8QSugstABGr5A%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=q65WCykX4LSrz3GQd5r6SQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=2AvvWflgGJyXQV0WE7lYPw%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=twp99qzEoH4uf4aBO%2BvQlQ%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=0UasHuzxmW2iEJrVRqloyA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=aueRKZ771qTnSoTX3z%2F7wA%3D%3D
https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=3k4%2FDZXRaiV7h85%2Fpmmsfw%3D%3D
Результаты (файл .json)
1. Я получаю 44 поля (файл .txt содержит 50 URL-адресов). #РЕШЕНО ДОБАВЛЕНИЕ DUPEFILTER ПО ПРЕДЛОЖЕНИЮ @wRAR

2. Первые три элемента имеют одинаковое название и бюджет, но разные URL-адреса.#РЕШЕНО С ЗАДЕРЖКОЙ ЗАГРУЗКИ

3. После ручной проверки каждый из этих трех URL-адресов фактически имеет разный бюджет и название.#РЕШЕНО С ЗАДЕРЖКАМИ ЗАГРУЗКИ

Код: Выделить всё

[
{"objeto_contrato": ["Renovación de redes de agua potable de fibrocemento en las calles travesía conca de la safor, ademas e la renovación de redes de aguas pluviales en la calle paseo alcalde miguel faus y carrer ronda, así como la instalación de analizador de turbidez e implantación de fuentes publicas de agua potable filtrada por sistema de ósmosis en diferentes emplazamientos"], "presupuesto_base": ["76,774.94"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxCoAgEADQT7qpoMDBoZqaS5c4PInL06RE-vwcHzywsINNWPnEwndCaTbkfRZOYSRfUMQfwo4LuhZgAwuWaaoCxum80vWk-avB9I-8XVkGrRTkGPUPeMSn2Q!!/"]},
{"objeto_contrato": ["Renovación de redes de agua potable de fibrocemento en las calles travesía conca de la safor, ademas e la renovación de redes de aguas pluviales en la calle paseo alcalde miguel faus y carrer ronda, así como la instalación de analizador de turbidez e implantación de fuentes publicas de agua potable filtrada por sistema de ósmosis en diferentes emplazamientos"], "presupuesto_base": ["76,774.94"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjs828E7P9tKMinXxTPZ28gjwCMwOyA21t9Qtycx0Bf-5y3w!!/"]},
{"objeto_contrato": ["Renovación de redes de agua potable de fibrocemento en las calles travesía conca de la safor, ademas e la renovación de redes de aguas pluviales en la calle paseo alcalde miguel faus y carrer ronda, así como la instalación de analizador de turbidez e implantación de fuentes publicas de agua potable filtrada por sistema de ósmosis en diferentes emplazamientos"], "presupuesto_base": ["76,774.94"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxCoAgEADQr3G-poigwaKIGgsyl7hU6uiyBrHfz_HBAw0KtMdIBwZ6PHLyap17mfxVWheQ2W1MhgKaFGABDZpsGxnWfhQZS9oHVX_Y5WYq5uYUmawqeO9b_pxbrGA!/"]},
{"objeto_contrato": ["Renovación de la red de abastecimiento de agua potable en calles Jose María de la Fuente y San Isidoro de Ciudad Real."], "presupuesto_base": ["73,691.96"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxDkAwEADQTzqDAUkHwSoWoV3ktBc5rqdDw-8zvuSBgxWc4sMHZr4V5bcNRElYryZQRhHahD1n9H-ABRw4DsMjYHvioirPsfNTnXbtX8FZDmMgxdh-dRs-gw!!/"]},
{"objeto_contrato": ["Renovación de la red de abastecimiento de agua potable en calles Jose María de la Fuente y San Isidoro de Ciudad Real."], "presupuesto_base": ["73,691.96"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjkwKcDapMzatcU0K0jb0cM7O8_bWz021t9Qtycx0BDiAL2w!!/"]},
{"objeto_contrato": ["renovacion de redes de agua potable de fibrocemento en calle crist rey, instalacion de analizador de turbidez e implantacion de fuentes publicas de agua potable filtrada por sistema de osmosis en diferentes emplazamientos del municipio de Daimus"], "presupuesto_base": ["77,229.29"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjvXOyzTycQwpCg7QDzMzcg7X9_SLLAm1t9Qtycx0BR9InjQ!!/"]},
{"objeto_contrato": ["Contracte d'obres per la renovació de la xarxa d'aigua al carrer Empordà al nucli de Pinedes de l'Armengol.  Substitució de canonada d'aigua potable en baixa en sòl urbà."], "presupuesto_base": ["148,284.23"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjtX2Cg_wtzSK0yx21s43ynZNc8os9y21t9Qtycx0B3OltPA!!/"]},
{"objeto_contrato": ["Obres  d'actuacions diverses al Dipòsit de Farners."], "presupuesto_base": ["53,110.16"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxDkAwEADQTzpGkg4dTDZEtYuc9sLFtTU0xN8zvuSBgwVcwpt3LJwTym8biC7hdLaBCorQKuy5oP8DGHDgOHS3gH0fHegYTFVzT7OZtmb0eVcKrhj1B4i-1Ew!/"]},
{"objeto_contrato": ["Renovación de redes de agua potable de fibrocemento en las calles Travesía Conca de la Safor, además de la renovación de redes de aguas pluviales en la calle Paseo Alcalde Miguel Faus y carrer Ronda, así como la instalación de analizador de turbidez e implantación de fuentes públicas de agua potable filtrada por sistema de osmosis en diferentes emplazamientos en Beniflà."], "presupuesto_base": ["76,774.94"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxDkAwEADQT7oEg0gMHfoBLOgi12tTxymi-H0dX_LAwAgm4ssBEx8RJXty3p_CcWucTyjiZ2HihJQDDGDAsNOvwGT76ua-pHql4tNLZ0ldT2hbOPdd_Tj6ctU!/"]},
{"objeto_contrato": ["Substitució comptadors d'aigua analògics a digitals"], "presupuesto_base": ["78,172.29"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjg1Iq3RLL_bUt8w0rilPDMpILi7Izym1t9Qtycx0B-Ejvjg!!/"]},
{"objeto_contrato": ["Obras de renovación de redes hidraulicas y mejora de impulsión de red de agua potable en Calle San Benito de Fuencaliente"], "presupuesto_base": ["51,610.82"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcrBCoAgDADQT5rRLehgEJS3ICh3iZEio6VCUn1-HR88QFgBI90cqHCKJL-t8z4Lx6NxvpCI34R3LrT_ARZAQHb9LWCzqkacujdq9djZGFVfQwptC_k89Qf2n2Dy/"]},
{"objeto_contrato": ["Renovación de la tubería de traída de la Fuente Grande hasta el edificio del motor y optimización de equipo de bombeo”. \r\nPlan Inversiones 22-23/701"], "presupuesto_base": ["93,431.81"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjy4pNi108k0NMPL1UDQLMc7zM3UoNgh1tbfULcnMdAffvgaQ!/"]},
{"objeto_contrato": ["Mejora de la red de abastecimiento del municipio de Alcolea de Calatrava (Ciudad Real)"], "presupuesto_base": ["64,310.51"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/Dco7CoAwDADQI0VHBQcVodBRsbWLxDZIMP0MxfPr-OCBAwsu4cs3Vs4J5fcRiIpwevpAFUXoFPZc0f8BDDhwHJZX4KDZNlOrlUpR0262q1t9vocBSozjB3jIPXg!/"]},
{"objeto_contrato": ["Obras para rehabilitación del pavimento interior de la Plaza San Fernando, rehabilitación de la jardinería y mejoras en la accesibilidad e infraestructuras urbanas."], "presupuesto_base": ["300,459.50"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcoDqjDwznEuN3dJ98xPdzJKDLUKcM1QNHG1t9Qtycx0B_de8JA!!/"]},
{"objeto_contrato": ["Obras de instalaciones de recogida y depuración de las aguas residuales en el casco urbano de Errezil (1.fase)"], "presupuesto_base": ["188,238.98"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjkyIdLRxNzM2yjc0sUpOcVA0iQsorDRxtbfULcnMdAYp0tHw!/"]},
{"objeto_contrato": ["Renovación de la Red de Abastecimiento en Avda. del Torreón y Paseo Pablo Picasso de Ciudad Real"], "presupuesto_base": ["158,995.90"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcoxCoAwDADAJ2XRQaGDoIs4iIs2i8Q2lNDYKhTfb8eDA4QDMNEngYrkRFptPfOjkmLvuZAqnypOCrkaYAcEFD99CjaOLO-siI126xIvannLwRh47nv4AfSuT38!/"]},
{"objeto_contrato": ["Renovación de la Red de Abastecimiento en Avda.  del Torreón y Paseo Pablo Picasso de Ciudad Real"], "presupuesto_base": ["158,995.90"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjy_I9jN18_PIcw8JTsgOLHc2D_MuK021t9Qtycx0Bs6cGzQ!!/"]},
{"objeto_contrato": ["construcción nueva captación en elcoaz para abastecimiento de agua"], "presupuesto_base": ["50,618.92"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcoxCoAwDADAJwUHBwUHBzcHcalmkdiGEhqjYik-X8eDA4QF0KhIpCynkf5eA_OlYqkNnEmVNxUvmfwfwAECShiKwqqVYzPk-3mbaUw71TyfsevgOo7-AxdlbVM!/"]},
{"objeto_contrato": ["Mejora en el abastecimiento en alta de Burguete conducción desde el manantial al deposito regulador con  PEAD-110mm"], "presupuesto_base": ["66,597.66"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjvctMLV3N_EvNjd2zQw2Msvzcswzdym1t9Qtycx0BQwdD7Q!!/"]},
{"objeto_contrato": ["Obras correspondientes al Proyecto Plan de Obras 2023 Renovación de Redes de Abastecimiento de Agua Potable en Puebla de Don Rodrigo"], "presupuesto_base": ["63,127.10"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjnT08kyyNVQ0CKrw8Uz2dvII8AjMDsgNtbfULcnMdAS3u5Sw!/"]},
{"objeto_contrato": ["La millora de l’eficiència hídrica de la xarxa d’abastament d’aigua potable dels carrers del Pla de Manlleu, per millorar la qualitat de vida i serveis proporcionats per l’Ajuntament. Les obres consitiran en:\n⎯ Substitució d’uns 100m de la canonada de fibrociment de 50 mm de diàmetre en el tram entre el dipòsit de distribució i el nucli urbà del Pla de Manlleu. \n⎯ Substitució de 40 escomeses de plom per equivalents estàndards."], "presupuesto_base": ["51,509.87"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjTSucygISQ82N_L0CCqpSCv1TMkrD021t9Qtycx0B0yOBVg!!/"]},
{"objeto_contrato": ["Ejecución proyecto \"Abastecimiento caserios Atxurtza.  Fase 1 impulsión depósito Ezkio a nuevo depósito Atxurtza\""], "presupuesto_base": ["247,576.09"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjE5PNgiuN_MpNo8pcnUuC83Lyq7SjAm1t9Qtycx0BuYfnDw!!/"]},
{"objeto_contrato": ["Renovación de la red de Abastecimiento en calle Madrilas "], "presupuesto_base": ["122,111.84"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjQ0NMLMtNDUy1vQw8I12NozKjtCtyA21t9Qtycx0BvqWrgA!!/"]},
{"objeto_contrato": ["Mejora, modernización y dotación en las infraestructuras y servicios en el polígono industrial “CASCO URBANO/SECTOR S5” de Museros, incluido en el programa de Parques Empresariales del IVACE para el ejercicio 2023."], "presupuesto_base": ["122,361.12"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjCyw9TEwtSwNUDYLKo1zcy9ITo1zDKgJtbfULcnMdAflDcdc!/"]},
{"objeto_contrato": ["Renovación de la red de abastecimiento en las calles Grecia, Noruega y Portugal de Ciudad Real."], "presupuesto_base": ["191,559.99"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjXZwiy40CPMoCDS2MzbwsfZJLcopLy21t9Qtycx0B4ud3xg!!/"]},
{"objeto_contrato": ["Mejora en el abastecimiento en alta de Burguete conducción desde el manantial al deposito regulador con  PEAD-110mm"], "presupuesto_base": ["66,597.66"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjvdzDjL2z3ZxSwlxczQJUDUp9UnMjgsptbfULcnMdAd2X86g!/"]},
{"objeto_contrato": ["Mejora del abastecimiento en el diseminado de Rodacanters en Millena\r\n"], "presupuesto_base": ["63,218.56"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjyyrdHF3Ksp0SfSy0DUN8Kz0zo3Krym1t9Qtycx0BU5_uvQ!!/"]},
{"objeto_contrato": ["Renovación de redes de agua potable de fibrocemento"], "presupuesto_base": ["84,072.74"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQj_VK9nFzTigJUDar8wrJDEpNCVA2CfC0cbW31C3JzHQFWfu8j/"]},
{"objeto_contrato": ["Obras de mejora del deposito de Anotzibar"], "presupuesto_base": ["31,772.94"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjs8OLwrICvbJCjP3MDULLXCsjvYLdy21t9Qtycx0BGaNOZQ!!/"]},
{"objeto_contrato": ["obras correspondientes al proyecto renovación de redes de agua potable de fibrocemento en av. Jaime i, agüera pluviales borro, cambio de analizador de cloro e implantacion de fuentes publicas de agua potable filtrada por sistema de osmosis en el municipio de Ròtova"], "presupuesto_base": ["77,265.49"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/Dco7CoAwDADQI2UVwUFBUUFtHfxkkWCDBNPqUDy_HR88QNgAA31yUZQnkCbvjvlVCXfuOJIqHyqnRDpTgBUQUFz9KezL2HR2u4bJZNxV_dxaMbctCni9L3-Df_rM/"]},
{"objeto_contrato": ["Reacciona 2022 la Font d'en Carròs. Renovación de tubería en la urbanización del Tossal. Instalación de válvula reguladora de presión  en el casco urbano. Instalación de fuente de ósmosis.  Instalación de equipos de telelectura de contadores de agua potable."], "presupuesto_base": ["82,367.89"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxCoAgEADQT7poiqChoKFsCQLTJQ495PAyBxH6-xofPLBwgk1YOWDhJ6H8Np4oC6fYeyooQpew44LuD6DBgmU_VwFD0yKrepuEug1x27uDjBqHAfJ9jx_0w9bo/"]},
{"objeto_contrato": ["El objeto del contrato es la ” Obra de refuerzo del abastecimiento de agua a Tárano y su zona de influencia, en el término municipal de Cangas de Onís”."], "presupuesto_base": ["94,912.32"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcpBCoAgEADAJ21FRAQeOtQHCsy9xKISS6sJSdTv8zgwgLABRnr4oMxXJCk2zvskHM_B-Uwifhe2nMmWABoQkN30CJi7fTv6DFapWfr6wHladRiVghTC-APNVyTy/"]},
{"objeto_contrato": ["Contracte d'obres per la nova captació d’aigua al riu Escrita d'Espot"], "presupuesto_base": ["41,822.55"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/DcqxCoAgEADQTzqaosAhqqXFSUqXuFT08LQGaejrc3zwwMABpuBLASvdBblZO-8fppJG5ysy-5PJUkXbAuxgwJBbXwatL_vFoVMq5X6T85FktEsQAp6cpx_K_Svy/"]},
{"objeto_contrato": ["Mejoras en la red de abastecimiento del Ayuntamiento de Riotorto"], "presupuesto_base": ["49,975.01"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQji1QN8kN9wx0L3VQNPBNTkjyMnSuLA0sDbW31C3JzHQGSEVZM/"]},
{"objeto_contrato": ["Mejora, modernización y dotación en las infraestructuras y servicios en el polígono industrial “CASCO URBANO/SECTOR S5” de Museros, incluido en el programa de Parques Empresariales del IVACE para el ejercicio 2023."], "presupuesto_base": ["122,361.12"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjczwdk_1NQhxNXFK8LEKK8gyiAqp8ym1t9Qtycx0BQGuQWw!!/"]},
{"objeto_contrato": ["Contracte d'obres per la nova captació d’aigua al riu Escrita d'Espot"], "presupuesto_base": ["41,822.55"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjc9wro3yqssyMPVOTQ9KyAtOMQ4P9021t9Qtycx0BUvF1JQ!!/"]},
{"objeto_contrato": ["Proyecto de mejora del abastecimiento municipal de agua potable del municipio de Villaverde de Rioja (La Rioja)"], "presupuesto_base": ["55,725.67"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjg40y8n1MEx1DLQKDS9OLSxyd3ItMHW1t9Qtycx0BHF21Gg!!/"]},
{"objeto_contrato": ["Fase II Reurbanización de la calle Mayor entre la Plaza Santa Ana y Avenida Aragón en Belver de Cinca"], "presupuesto_base": ["122,857.09"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/Dco7CoAwDADQI8VJQXBw6CqK0E8WCTZIMNYOpYKn1_HBAwQPmKjKQUXuRPo7ROasks4-ciFV3lR2KbT_ARwgoERTFYJ5eVrEpnYlv9jGmU7D_AwD5OsaP3QO-L8!/"]},
{"objeto_contrato": ["Nuevo abastecimiento caserios Zuzuarregi -zuzuarregi txiki, Anduti, Lizarribar  del barrio  Egileor"], "presupuesto_base": ["64,790.44"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjA_2CK4v8czMNfAyCS9OLSxyd3ItMHW1t9Qtycx0BGEiWcA!!/"]},
{"objeto_contrato": ["Renovación de redes de aguas pluviales del municipio de Beniflà así como la instalación de analizador de cloro e implantación de fuentes publicas de agua potable filtrada por sistema de osmosis."], "presupuesto_base": ["79,695.29"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjC81Mw50rsyNMfIKLqozdA1NMi8yCA21t9Qtycx0BDucj1Q!!/"]},
{"objeto_contrato": ["ejecución de la obra renovación de redes de agua potable de fibrocemento en calle crist rey, cambio de analizador de cloro e implantacion de fuentes publicas de agua potable filtrada por sistema de osmosis en el municipio de daimús."], "presupuesto_base": ["89,103.18"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjE0tTg7yjzM0NC0PygvNDIoyrVA3Myx1tbfULcnMdAfrRc4Y!/"]},
{"objeto_contrato": ["Mejora del abastecimiento del núcleo de\r\nBárcabo"], "presupuesto_base":  ["139,082.35"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjjbNNVA1coiKCEjPDzDMsTFUNCnJzi9PKbW31gQxHAInuUEg!/"]},
{"objeto_contrato": ["Renovación Redes de Suministro Plaza de la Iglesia y parte de Calle Vallat"], "presupuesto_base": ["138,420.17"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/Dcq9CoAgEADgR7poCQKHBgmaasmfJQ41OTqtQYzePscPPrCgwWasFLHQnZGbjQ_hYcrX6ENB5nAwOSroWgAFFix5WRlMP9WqTo7z8ult75Qc2KyvEPCkNP2900up/"]},
{"objeto_contrato": ["Mejora del abastecimiento del núcleo de\r\nBárcabo"], "presupuesto_base": ["139,082.35"], "url": ["https://contrataciondelestado.es/wps/portal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfIjU1JTC3Iy87KtUlJLEnNyUuNzMpMzSxKTgQr0w_Wj9KMyU1zLcvQjLXyLVQ1SAovCHbPKnQKCnCqiTPK8VA3SbW31C3JzHQHGFcO1/"]}
]
Проблемы
Некоторые поля в выходных данных JSON неверны: данные из одного запроса сохраняются в другом элементе. #РЕШЕНО С ЗАДЕРЖКОЙ ЗАГРУЗКИ

Неверные поля не совпадают при разных попытках. #РЕШЕНО С ЗАДЕРЖКОЙ ЗАГРУЗКИ

Количество элементов в выходном файле JSON не соответствует количеству элементов в файле .txt. #РЕШЕНО ПУТЕМ ДОБАВЛЕНИЯ DUPEFILTER КАК ПРЕДЛОЖЕНО @wRAR

Количество элементов в выходном файле JSON варьируется в зависимости от разных попыток. #РЕШЕНО С ПОМОЩЬЮ DUPEFILTER КАК ПРЕДЛОЖЕНО @wRAR
Ожидаемое поведение
Каждый элемент в файле JSON должен быть независимым и содержать только данные, присутствующие в соответствующем URL-адресе. . #РЕШЕНИЕ С ЗАДЕРЖКАМИ ЗАГРУЗКИ

Файл JSON должен содержать то же количество элементов, что и файл .txt. #РЕШЕНИЕ С ЗАДЕРЖКАМИ ЗАГРУЗКИ

Файл JSON должен содержать то же количество элементов, что и файл .txt. #РЕШЕНИЕ С ЗАДЕРЖКАМИ ЗАГРУЗКИ

Файл JSON должен содержать то же количество элементов, что и файл .txt. #РЕШЕНИЕ С ЗАДЕРЖКАМИ ЗАГРУЗКИ

Файл JSON должен содержать то же количество элементов, что и файл .txt. #РЕШЕНИЕ С ЗАДЕРЖКАМИ ЗАГРУЗКИ

s> #РЕШЕНО С ПОМОЩЬЮ DUPEFILTER ПО ПРЕДЛОЖЕНИЮ @wRAR
Что я пробовал
Добавление if -else условия для установки «НЕТ ДАННЫХ НАЙДЕНО» в качестве заполнителя, когда данные не найдены. НЕ РАБОТАЕТ

Гарантировать, что экземпляр ItemLoader создается заново для каждого ответ. НЕ РАБОТАЕТ

Подтверждение правильности URL-адресов в моем исходном файле. НЕ РАБОТАЕТ

Дважды- убедитесь, что никакие другие части кода не имеют общего состояния, например переменные уровня класса или структуры данных с неправильной областью действия.

Используйте случайный пользовательский агент. НЕ РАБОТАЕТ
Использование случайных задержек загрузки. НЕ РАБОТАЕТ

Использование задержки загрузки в 2 секунды. РАБОТАЕТ
Что работает?
Ну, задержка загрузки работает. Но для парсинга 120 сайтов это время увеличивается с 47 секунд (без задержки) до 1247 секунд (21 минута).

Есть ли альтернативный способ обеспечить согласованность данных без значительного увеличения времени выполнения?< /strong>

Подробнее здесь: https://stackoverflow.com/questions/791 ... tamination
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»