【发布时间】:2016-03-18 13:38:07
【问题描述】:
我需要帮助在 Scrapy spider 中将相对 URL 转换为绝对 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
【问题讨论】:
-
response.urljoin(relative_url)可以解决问题,它是 urlparse 中 urljoin 方法的包装,但不导入 urlparse 库。非常方便。
标签: scrapy