【问题标题】:AttributeError: 'unicode' object has no attribute 'css'AttributeError:“unicode”对象没有属性“css”
【发布时间】:2018-08-18 09:33:58
【问题描述】:

我正在尝试使用 scrapy 从本地 http 服务器抓取一个 html 文件,但出现此错误

AttributeError: 'unicode' 对象没有属性 'css'

这里是代码

import scrapy
from ..items import YpauItem
class ypau(scrapy.Spider):
    name = 'ypau'
    #allowed_domains = ['http://localhost']
    start_urls = ['http://localhost/']

   def parse(self, response):
    selector = response.css('a::attr(href)').extract()
    for url in selector:
        urls = scrapy.Request(response.urljoin(url), callback=self.parsePage)
        yield urls
        print urls

   def parsePage(self, response):
    container = response.css('.listing.listing-search.listing-data').extract()
    for items in container:
        bname = items.css('listing-name::text').extract()

        item = YpauItem()
        item['Business_Name'] = bname
        yield item

【问题讨论】:

    标签: python web-scraping scrapy web-crawler


    【解决方案1】:

    如果你打印response.css('.listing.listing-search.listing-data').extract()你会为什么会得到那个错误,.extract()实际上返回一个str/unicode项的列表,如果你想在返回的列表项上使用css/xpath,请不要使用@987654324 @ 所以它会返回 Selector 类的对象。

    见下面的代码,

    container = response.css('.listing.listing-search.listing-data')
    for items in container:
        bname = items.css('listing-name::text').extract()
    
        item = YpauItem()
        item['Business_Name'] = bname
        yield item
    

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2017-05-19
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2018-07-15
      相关资源
      最近更新 更多