Python 3.x 我正在尝试在scrapy中加入URL,但无法这样做
我正在尝试从一个网站获取(id和名称),即名称,并希望将变量附加到另一个链接。例如,在name变量中,我得到了-/in/en/books/1446502一个激动人心的一天。(有许多记录),然后我想将name变量附加到“”以获取特定于该书的数据。此外,我还想为一个_名称设置一个条件,即如果response.css('span.expandAuthorName::text')不可用,则设置“-”,否则获取名称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
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字符串,这不符合我的目的。谢谢你的帮助!!!