Я могу только предположить, что это одна из самых основных вещей в Scrapy, но я просто не могу понять, как это сделать. В принципе, я очищаю одну страницу, чтобы получить список URL-адресов, содержащих обновления за неделю. Затем мне нужно переходить к этим ссылкам один за другим и очищать информацию от них. В настоящее время у меня установлены оба скребка, и они отлично работают вручную. Поэтому я сначала очищаю URL-адреса от первого скребка, затем жестко кодирую их как start_urls [] на втором скрепе.Scrapy - Скребки, найденные при очистке
Каков наилучший способ сделать это? Это так же просто, как вызвать другую функцию в файле скрепера, которая берет список URL-адресов и выполняет ли соскабливание?
Это скребок, который получает список URLs:
class MySpider(scrapy.Spider):
name = "myspider"
start_urls = [ .....
]
def parse(self, response):
rows = response.css('table.apas_tbl tr').extract()
urls = []
for row in rows[1:]:
soup = BeautifulSoup(row, 'lxml')
dates = soup.find_all('input')
urls.append("http://myurl{}.com/{}".format(dates[0]['value'], dates[1]['value']))
Это скребок, который затем проходит через URL, один за другим:
class Planning(scrapy.Spider):
name = "planning"
start_urls = [
...
]
def parse(self, response):
rows = response.xpath('//div[@id="apas_form"]').extract_first()
soup = BeautifulSoup(rows, 'lxml')
pages = soup.find(id='apas_form_text')
for link in pages.find_all('a'):
url = 'myurl.com/{}'.format(link['href'])
resultTable = soup.find("table", { "class" : "apas_tbl" })
Я тогда спас resultTable в файл , На данный момент я беру вывод списка URL-адресов и копирую его в другой скребок.
Вы, вероятно, придетесь разделить код ваших пауков, чтобы сообщество здесь может помочь вам получить там. Не просматривая код, вам сложно найти решение, соответствующее текущему состоянию. –
@paultrmbrth Я добавил код. –