Я попытался запустить Spider на сайте. asp, для которого требуется авторизация при входе в систему и некоторые сканирование на другой странице на том же сайте. Мне удалось успешно войти в систему вчера, используя мой паук, и я работал над очисткой данных с помощью другой функции, и когда я снова запустил паука после изменения функции las, паук перестал работать. Я понятия не имею, что происходит, я довольно плохо разбираюсь в Интернете. Вот код:
import scrapy
from scrapy.http import FormRequest
from scrapy.utils.response import open_in_browser
class TourSpider(scrapy.Spider):
name = 'data'
start_url= ["https://www.translamex.com/partners/login.asp?ret_link=%2Fpartners%2FDefault%2Easp&type=notLogged"]
url="https://www.translamex.com/"
def parse(self, response):
return FormRequest.from_response(response=response,
clickdata={'id':'Login1Button_DoLogin'},
formdata={
'login':"username",
'password':"password"
}, callback=self.next_page)
def next_page(self,response):
next_page=response.css('a[title="View Rates / Tarifas"]::attr(href)').extract_first()
rates = response.urljoin(next_page)
yield scrapy.Request(url=rates, callback=self.start_scraping)
def start_scraping(self,response):
open_in_browser(response)
for row in response.css("tr.Row"):
yield {
"destination": row.css("td::text")[0].extract(),
"tour": row.css(".td::text")[1].extract(),
"public_rate_adult":row.css(".td::text")[2].extract(),
"public_rate_child":row.css(".td::text")[3].extract(),
"rate_adult":row.css(".td::text")[4].extract(),
"rate_child":row.css(".td::text")[5].extract()
}
Вот журнал:
020-01-08 22:55:13 [scrapy.utils.log] INFO: Scrapy 1.8.0 started (bot: Tour)
2020-01-08 22:55:13 [scrapy.utils.log] INFO: Versions: lxml 4.4.2.0, libxml2 2.9.9, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.10.0, Python 3.7.5 (default, Oct 25 2019, 15:51:11) - [GCC 7.3.0], pyOpenSSL 19.1.0 (OpenSSL 1.1.1d 10 Sep 2019), cryptography 2.8, Platform Linux-4.15.0-72-generic-x86_64-with-debian-buster-sid
2020-01-08 22:55:13 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'Tour', 'FEED_FORMAT': 'json', 'FEED_URI': 'data.json', 'NEWSPIDER_MODULE': 'Tour.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['Tour.spiders']}
2020-01-08 22:55:13 [scrapy.extensions.telnet] INFO: Telnet Password: e98d8ad268ff9643
2020-01-08 22:55:13 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.feedexport.FeedExporter',
'scrapy.extensions.logstats.LogStats']
2020-01-08 22:55:13 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware',
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2020-01-08 22:55:13 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware']
2020-01-08 22:55:13 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2020-01-08 22:55:13 [scrapy.core.engine] INFO: Spider opened
2020-01-08 22:55:13 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2020-01-08 22:55:13 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2020-01-08 22:55:13 [scrapy.core.engine] INFO: Closing spider (finished)
2020-01-08 22:55:13 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'elapsed_time_seconds': 0.004019,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2020, 1, 8, 22, 55, 13, 962196),
'log_count/INFO': 10,
'memusage/max': 54812672,
'memusage/startup': 54812672,
'start_time': datetime.datetime(2020, 1, 8, 22, 55, 13, 958177)}
2020-01-08 22:55:13 [scrapy.core.engine] INFO: Spider closed (finished)
Код имел обыкновение пытаться очистить некоторые данные со страницы, которую я хотел, но безуспешно, но Я считаю, что это было только потому, что я использовал неправильный селектор css. Теперь он просто открывается и закрывается, ничего не делая.