不确定为什么Scrapy response.xpath传递列表

时间:2018-12-07 20:49:43

标签: python xpath scrapy byte scrapy-spider

此蜘蛛旨在获取域中的URL列表,并将XPath内容写入html文件。当以``a +''打开txt文件并写入字符串时,我可以使它正常工作,但是如果我想以``ab +''打开html文件,则字符串或response.xpath结果都将无效。后者给了我这个错误:

  

TypeError:需要一个类似字节的对象,而不是“列表”

我无法确定列表的来源。

代码如下:

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())

1 个答案:

答案 0 :(得分:0)

extract()替换为get()(或extract_first())。