Python 3.x 我正在尝试在scrapy中加入URL,但无法这样做

Python 3.x 我正在尝试在scrapy中加入URL,但无法这样做,python-3.x,web-scraping,scrapy,data-science,Python 3.x,Web Scraping,Scrapy,Data Science,我正在尝试从一个网站获取(id和名称),即名称,并希望将变量附加到另一个链接。例如,在name变量中,我得到了-/in/en/books/1446502一个激动人心的一天。(有许多记录),然后我想将name变量附加到“”以获取特定于该书的数据。此外,我还想为一个_名称设置一个条件,即如果response.css('span.expandAuthorName::text')不可用,则设置“-”,否则获取名称 import scrapy class BrickSetSpider(scrapy.Sp

我正在尝试从一个网站获取(id和名称),即名称,并希望将变量附加到另一个链接。例如,在name变量中,我得到了-/in/en/books/1446502一个激动人心的一天。(有许多记录),然后我想将name变量附加到“”以获取特定于该书的数据。此外,我还想为一个_名称设置一个条件,即如果response.css('span.expandAuthorName::text')不可用,则设置“-”,否则获取名称

import scrapy

class BrickSetSpider(scrapy.Spider):
    name = 'brickset-spider'
    start_urls = ['https://www.storytel.com/in/en/categories/1-Children?pageNumber=100']

    def parse(self, response):
        # for quote in response.css('div.gridBookTitle'):
        #     item = {
        #         'name': quote.css('a::attr(href)').extract_first()
        #     }
        #     yield item
        urls = response.css('div.gridBookTitle > a::attr(href)').extract()
        for url in urls:
            url = ['https://www.storytel.com'].urljoin(url)
            yield scrapy.Request(url=url, callback=self.parse_details)

    def parse_details(self, response):
        yield {
            'a_name': response.css('span.expandAuthorName::text').extract_first()
        }

我正在尝试附加“.urljoin(url),但我得到了相同的错误。作为一个新手,我尝试了很多事情,但都没能解决这个问题。我得到错误-在第15行列表对象没有属性urljoin。任何关于如何克服这一问题的线索。提前感谢。

请检查此解决方案

for url in urls: 
  url = 'https://www.storytel.com'+ url 

  yield scrapy.Request(url=url, callback=self.parse_details)
这有助于让我知道。

url=['https://www.storytel.com'].urljoin(url)
在这里,您试图将字符串“连接”到字符串列表。如果要将给定url(即字符串)附加到基本字符串(.),可以通过以下方式执行:

full\u url=”https://www.storytel.com“.join(url)
#或
完整url=”https://www.storytel.com“+url
您可以在此处查看有关字符串(特别是“连接”)的文档:


编辑:另外,我不确定urljoin是否存在…

我已经尝试了您提到的方法。它给了我一个url字符串,这不符合我的目的。谢谢你的帮助!!!