Этот паук предназначен для получения списка URL-адресов в домене и записи содержимого XPath в html-файл.Я могу заставить его работать, открывая txt-файл как 'a +' и записывая строку, но если я хочу открыть html-файл как 'ab +', ни строка, ни результат response.xpath не будут работать.Последний дает мне эту ошибку:
TypeError: требуется объект, похожий на байты, а не 'list'
Я не могу понять, откуда приходит списокхотя.
Вот код:
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class MySpider(CrawlSpider):
name = 'FirstSpider'
allowed_domains = ['domain.com']
with open("urls.txt", "rt") as f:
start_urls = [url.strip() for url in f.readlines()]
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'blah-%s.html' % page
with open(filename, 'ab+') as f:
f.write(response.xpath("//*[@id='content']").extract())