I am trying to scrape data but they give me error UnboundLocalError: local variable 'd3' referenced before assignment
how I can solve these error any solution please suggest me I search many solution but I cannot find any solution that help me if you have any solution then suggest me these is page link https://rejestradwokatow.pl/adwokat/abaewicz-agnieszka-51004
import scrapy
from scrapy.http import Request
from scrapy.crawler import CrawlerProcess
from bs4 import BeautifulSoup
class TestSpider(scrapy.Spider):
name = 'test'
start_urls = ['https://rejestradwokatow.pl/adwokat/list/strona/1/sta/2,3,9']
custom_settings = {
'CONCURRENT_REQUESTS_PER_DOMAIN': 1,
'DOWNLOAD_DELAY': 1,
'USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}
def parse(self, response):
soup=BeautifulSoup(response.text, 'html.parser')
tra = soup.find_all('td', class_='icon_link')
for links in tra:
for link in links.find_all('a', href=True):
comp = link['href']
yield Request(comp, callback=self.parse_book)
def parse_book(self, response):
soup=BeautifulSoup(response.text, 'html.parser')
details = soup.find_all('div', class_='line_list_K')
for detail in details:
try:
status = detail.find(
'span', string='Status:').findNext('div').getText()
except:
pass
try:
d1 = detail.find('span', string='Data wpisu w aktualnej izbie na listę adwokatów:').findNext(
'div').getText()
except:
pass
try:
d3 = detail.find('span', string='Ostatnie miejsce wpisu:').findNext(
'div').getText()
except:
pass
try:
d4 = detail.find('span', string='Stary nr wpisu:').findNext(
'div').getText()
except:
pass
try:
d5 = detail.find('span', string='Zastępca:').findNext(
'div').getText()
except:
pass
yield{
'status':status,
"d1":d1,
"d3":d3,
"d4":d4,
"d5":d5
}
source https://stackoverflow.com/questions/72808008/using-beautiful-soup-and-scrapy-error-give-me-that-error-refer-before-assignment
Comments
Post a Comment