我的验证码中的错误在哪里?

时间:2019-07-14 12:48:06

标签: web scrapy web-crawler

我想通过scrapy爬行网站,但是我的代码出现错误。 我尝试使用xpath,但似乎无法在网站中定义div类。

以下代码在("h2 ::text").extract()上引发错误。

import scrapy
from scrapy.selector import Selector
from artistlist.items import ArtistlistItem

class MySpider(scrapy.Spider):
    name = "artistlist"
    allowed_domains = ["baltictriennial13.org"]
    start_urls = ["https://www.baltictriennial13.org/artist/caroline-achaintre/"]

    def parse(self, response):
        hxs = Selector(response)
        titles = hxs.xpath("//div[@class='artist']")
        items = []
        for titles in titles:
            item = ArtistlistItem()
            item["artist"] = titles.select("h2 ::text").extract()
            item["biograpy"] = titles.select("p::text").extract()
            items.append(item)
        return items

我想对网站进行爬网并将数据存储在.csv文件中。

2 个答案:

答案 0 :(得分:0)

代码的主要问题是使用.select而不是.css。这是您需要的,但是我不确定titles部分(也许您在其他页面上也需要):

def parse(self, response):
    titles = response.xpath("//div[@class='artist']")
    # items = []
    for title in titles:
        item = ArtistlistItem()
        item["artist"] = title.css("h2::text").get()
        item["biograpy"] = title.css("p::text").get()
        # items.append(item)
        yield item

答案 1 :(得分:-1)

尝试删除h2 ::text --> h2::text中的空格。如果不起作用尝试h2/text()