gpt4 book ai didi

scrapy - 相对URL到绝对URL Scrapy

转载 作者:行者123 更新时间:2023-12-04 03:26:19 26 4
gpt4 key购买 nike

我需要帮助将相对URL转换为Scrapy Spider中的绝对URL。

我需要将起始页面上的链接转换为绝对URL,以获取起始页面上已草稿的项目的图像。我尝试使用不同的方法来实现此目标失败,但是我陷入了困境。有什么建议吗?

class ExampleSpider(scrapy.Spider):
name = "example"
allowed_domains = ["example.com"]
start_urls = [
"http://www.example.com/billboard",
"http://www.example.com/billboard?page=1"
]

def parse(self, response):
image_urls = response.xpath('//div[@class="content"]/section[2]/div[2]/div/div/div/a/article/img/@src').extract()
relative_url = response.xpath(u'''//div[contains(concat(" ", normalize-space(@class), " "), " content ")]/a/@href''').extract()

for image_url, url in zip(image_urls, absolute_urls):
item = ExampleItem()
item['image_urls'] = image_urls

request = Request(url, callback=self.parse_dir_contents)
request.meta['item'] = item
yield request

最佳答案

主要有以下三种方法可以实现:


使用urljoin中的urllib函数:

from urllib.parse import urljoin
# Same as: from w3lib.url import urljoin

url = urljoin(base_url, relative_url)

使用响应的 urljoin包装器方法,如 Steve所述。

url = response.urljoin(relative_url)

如果您还想通过该链接产生请求,则可以使用少数响应的 follow方法:

# It will create a new request using the above "urljoin" method
yield response.follow(relative_url, callback=self.parse)

关于scrapy - 相对URL到绝对URL Scrapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com