Мне нужен скрипт Scrapy, который просматривает весь веб-сайт и сохраняет только те страницы, на которых есть тег form
HTML.
Вот мой текущий подход, который не работает должным образом
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class MySpider(CrawlSpider):
name = 'mps'
allowed_domains = ['some.url.com']
start_urls = ['https://some.url.com/']
rules = (
Rule(LinkExtractor(), callback='parse_item', follow=True),
)
def parse_item(self, response):
hasForm = response.xpath("//form[@id = 'aspnetForm']/form").extract_first(default='not-found')
if hasForm == 'not-found':
pass
else:
filename = response.url.split("/")[-2] + '.html'
with open(filename, 'wb') as f:
f.write(response.body)
pass
Обновление:
Мне также нужно исключить form
с определенным идентификатором